Merge branch 'android13-5.15' into android13-5.15-lts
Sync up with android13-5.15 for the following commits:
* 5476e160a6a6 Merge "Merge tag 'android13-5.15.94_r00' into android13-5.15" into android13-5.15
|\
| * 51556245492e Merge tag 'android13-5.15.94_r00' into android13-5.15
* | e5862f1a4060 UPSTREAM: wifi: nl80211: fix puncturing bitmap policy
|/
* f8c9753a1256 UPSTREAM: hwrng: virtio - add an internal buffer
* 1dddc1992eae ANDROID: GKI: Update abi_gki_aarch64_qcom
* 092199e995ef BACKPORT: wifi: nl80211: Allow authentication frames and set keys on NAN interface
* 05164a8564ba UPSTREAM: wifi: cfg80211: Allow action frames to be transmitted with link BSS in MLD
* 6bab8a400278 BACKPORT: wifi: cfg80211: include puncturing bitmap in channel switch events
* e8a4772f4d12 BACKPORT: wifi: nl80211: validate and configure puncturing bitmap
* b099f1eb0b33 UPSTREAM: regmap: Don't warn about cache only mode for devices with no cache
* b3ebd7ca3bd6 ANDROID: dma-buf: system_heap: kmap_local_page instead of kmap_atomic
* 16e9875abd44 ANDROID: GKI: update xiaomi symbol list
* cf18e5eb5ef2 UPSTREAM: ext4: fix another off-by-one fsmap error on 1k block filesystems
* 090c1ebf8df4 UPSTREAM: dm verity: stop using WQ_UNBOUND for verify_wq
* 7f356bba0251 BACKPORT: dm verity: enable WQ_HIGHPRI on verify_wq
* 4017ffbb86e8 UPSTREAM: dm verity: remove WQ_CPU_INTENSIVE flag since using WQ_UNBOUND
* a6c4727f6a53 UPSTREAM: loop: Fix use-after-free issues
* 24c1fcb7878c ANDROID: GKI: Update symbol list for mtk
* 6c60fdbac2c9 UPSTREAM: ext4: block range must be validated before use in ext4_mb_clear_bb()
* 53ce0eef4695 UPSTREAM: ext4: add strict range checks while freeing blocks
* 20389d86cb01 UPSTREAM: ext4: add ext4_sb_block_valid() refactored out of ext4_inode_block_valid()
* 60c24f4d1535 UPSTREAM: ext4: refactor ext4_free_blocks() to pull out ext4_mb_clear_bb()
* 7ba7908a8d52 ANDROID: mm: handle SPF using a copy of the original vma
* 521f3bc70dc8 ANDROID: mm: fix UAF in SPF
* e09118b90b6f ANDROID: GKI: Update symbol list for mtk
* 0659efffd9d3 UPSTREAM: arm64: efi: Make efi_rt_lock a raw_spinlock
* 6b908238a81e UPSTREAM: wifi: cfg80211: Set SSID if it is not already set
* 554a9671671a Revert "Revert "ANDROID: usb: dwc3: gadget: don't cancel the started requests""
* eef9e1295bde UPSTREAM: rtmutex: Ensure that the top waiter is always woken up
* cc0db0b28cfc UPSTREAM: cgroup/cpuset: Don't filter offline CPUs in cpuset_cpus_allowed() for top cpuset tasks
* 3c4f88430679 UPSTREAM: ext4: refuse to create ea block when umounted
* 0473082f7ad7 UPSTREAM: ext4: optimize ea_inode block expansion
* bf0b8e8181b0 UPSTREAM: ext4: allocate extended attribute value in vmalloc area
* 79bd2581b8cd ANDROID: ABI: Update the GKI symbol list and ABI XML
* cfe5bd7f0163 ANDROID: abi_gki_aarch64_qcom: Update symbol list
* f3091267aca0 ANDROID: GKI: update xiaomi symbol list
* fb1db47637a3 UPSTREAM: Partially revert "perf/arm-cmn: Optimise DTC counter accesses"
* 1f12217e5de2 UPSTREAM: usb: dwc3: gadget: Ignore End Transfer delay on teardown
* fc41b9e12227 UPSTREAM: elfcore: Add a cprm parameter to elf_core_extra_{phdrs,data_size}
* ee863e210983 UPSTREAM: arm64: mte: Fix double-freeing of the temporary tag storage during coredump
* 7dc85abaac28 UPSTREAM: wifi: nl80211: Add checks for nla_nest_start() in nl80211_send_iface()
* 8b1316dd5b16 UPSTREAM: mm/page_exit: fix kernel doc warning in page_ext_put()
* 37fbaa232deb UPSTREAM: f2fs: fix gc mode when gc_urgent_high_remaining is 1
* ad8cc978ccc1 BACKPORT: mm: multi-gen LRU: move lru_gen_add_mm() out of IRQ-off region
* 73d24f728f3f UPSTREAM: KVM: arm64: Use correct accessor to parse stage-1 PTEs
* 2f6641fde7e3 UPSTREAM: wifi: fix multi-link element subelement iteration
* 0cc04953f0c0 UPSTREAM: perf/arm-cmn: Add more bits to child node address offset field
* a481cc4587ce UPSTREAM: perf/arm-cmn: Update watchpoint format
* 668c43092bbd UPSTREAM: perf/arm-cmn: Hide XP PUB events for CMN-600
* 5761541a4eb5 BACKPORT: wifi: cfg80211: move puncturing bitmap validation from mac80211
* 267de69e07c3 UPSTREAM: wifi: nl80211: add MLO_LINK_ID to CMD_STOP_AP event
* 83e77c318322 BACKPORT: cfg80211: Update Transition Disable policy during port authorization
* f4559cb66624 ANDROID: ABI: Update db845c symbol list on ufshcd
* bef41f506fe2 ANDROID: usb: gadget: f_accessory: update to usb_gstrings_attach
* 0fd1c2a78d14 UPSTREAM: usb: gadget: composite: Draw 100mA current if not configured
* a223191ed9f6 UPSTREAM: usb: dwc3: gadget: Change condition for processing suspend event
* 91c677412ca9 UPSTREAM: net/sched: tcindex: update imperfect hash filters respecting rcu
* 6ca9fd3a0ceb BACKPORT: FROMGIT: scsi: ufs: core: Add hibernation callbacks
* 35d26a773653 ANDROID: ABI: Update unisoc thermal symbol list
* 683fe954dc18 ANDROID: thermal: Add a vendor hook for thermal throttle update
* e013dc708169 ANDROID: GKI: Add symbol list for Lenovo
* 6a7aa0901366 ANDROID: Enable percpu high priority kthreads for erofs
* 40a9ba963b1a UPSTREAM: erofs: fix an error code in z_erofs_init_zip_subsystem()
* 7dc188b2220b BACKPORT: erofs: add per-cpu threads for decompression as an option
* 4fd62a87f5da ANDROID: ABI: Update oplus symbol list
* 05b5ff11ad98 ANDROID: vendor_hooks: Add hooks for mutex and rwsem optimistic spin
* 9eec95bb4b41 UPSTREAM: io_uring: ensure that io_init_req() passes in the right issue_flags
* c112dc57713a ANDROID: Update the GKI symbol list and ABI XML
* bdf1c2ccdf1b UPSTREAM: io_uring: add missing lock in io_get_file_fixed
* 3352886cae4c ANDROID: gki_config: enable CONFIG_IIO_TRIGGERED_BUFFER
* e21e3d108bcd ANDROID: GKI: VIVO: Add a symbol to symbol list
* 5239ef3d19d8 UPSTREAM: drivers/thermal/cpufreq_cooling: Use private callback ops for each cooling device
* 287c9980a085 UPSTREAM: scsi: scsi_debug: Fix possible UAF in sdebug_add_host_helper()
* 6db5181a3f4a UPSTREAM: io_uring/rw: remove leftover debug statement
* 4390be5c797f UPSTREAM: io_uring/rw: ensure kiocb_end_write() is always called
* 6b3d1f961dc1 UPSTREAM: io_uring: fix double poll leak on repolling
* 3749f8d82684 UPSTREAM: io_uring: Clean up a false-positive warning from GCC 9.3.0
* 0da7ee3fbe46 UPSTREAM: io_uring/net: fix fast_iov assignment in io_setup_async_msg()
* 3a4f67f90391 UPSTREAM: io_uring: io_kiocb_update_pos() should not touch file for non -1 offset
* 3c83e0a95a36 UPSTREAM: io_uring/rw: defer fsnotify calls to task context
* 630c3722197a UPSTREAM: io_uring: do not recalculate ppos unnecessarily
* 47179f7dd8dd UPSTREAM: io_uring: update kiocb->ki_pos at execution time
* b0b3d93abc78 UPSTREAM: io_uring: remove duplicated calls to io_kiocb_ppos
* 7b865f60c7cf UPSTREAM: io_uring: ensure that cached task references are always put on exit
* c72cbb2252e5 UPSTREAM: io_uring: fix async accept on O_NONBLOCK sockets
* 88be697dc064 UPSTREAM: io_uring: allow re-poll if we made progress
* 393d994594b2 UPSTREAM: io_uring: support MSG_WAITALL for IORING_OP_SEND(MSG)
* 8f3a4070fd3b UPSTREAM: io_uring: add flag for disabling provided buffer recycling
* b0b6bfe44398 UPSTREAM: io_uring: ensure recv and recvmsg handle MSG_WAITALL correctly
* 40520bb96c93 UPSTREAM: io_uring: improve send/recv error handling
* 6c0dd68dbe1f UPSTREAM: io_uring: pass in EPOLL_URING_WAKE for eventfd signaling and wakeups
* ab6956ac6b34 UPSTREAM: eventfd: provide a eventfd_signal_mask() helper
* b4ab4ac9009d UPSTREAM: eventpoll: add EPOLL_URING_WAKE poll wakeup flag
* 2373a0c72f46 UPSTREAM: io_uring: don't gate task_work run on TIF_NOTIFY_SIGNAL
* b579578d93d5 UPSTREAM: io_uring/io-wq: only free worker if it was allocated for creation
* 19758f54f74d UPSTREAM: io_uring/io-wq: free worker if task_work creation is canceled
* 65e1f2ef67cc UPSTREAM: io_uring: lock overflowing for IOPOLL
* 198e5002e262 UPSTREAM: io_uring: Fix unsigned 'res' comparison with zero in io_fixup_rw_res()
* 5af453ff63c3 UPSTREAM: io_uring: fix CQ waiting timeout handling
* e6f9c1b71a5d UPSTREAM: io_uring: check for valid register opcode earlier
* dcc1ea1639be UPSTREAM: io_uring: Fix a null-ptr-deref in io_tctx_exit_cb()
* 3a1c153b9654 UPSTREAM: io_uring: move to separate directory
* c0dee081116f UPSTREAM: io_uring/poll: fix poll_refs race with cancelation
* 5a5dcf5c1d8c UPSTREAM: io_uring: make poll refs more robust
* 30909f865bd6 UPSTREAM: io_uring: cmpxchg for poll arm refs release
* 242ed498525d UPSTREAM: io_uring: fix tw losing poll events
* 7e603b207928 UPSTREAM: io_uring: update res mask in io_poll_check_events
* fab4d02938f3 UPSTREAM: wifi: cfg80211: Extend cfg80211_update_owe_info_event() for MLD AP
* 048ad5d37537 UPSTREAM: wifi: cfg80211: Extend cfg80211_new_sta() for MLD AP
* 9216110fdfd5 UPSTREAM: wifi: cfg80211: Authentication offload to user space for MLO connection in STA mode
* 272c5a9d376c UPSTREAM: wifi: cfg80211: trace: remove MAC_PR_{FMT,ARG}
* 99da8df3761f UPSTREAM: KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS
* 16bb33d7efcf ANDROID: ABI: Update allowed list for QCOM
* 3383d21e9e60 UPSTREAM: wifi: cfg80211: Support 32 bytes KCK key in GTK rekey offload
* 26bac3f09374 ANDROID: MGLRU: Don't skip anon reclaim if swap low
* 151bc216581f ANDROID: incremental fs: Move throttling to outside page lock
* 3ab6fda925b5 ANDROID: incremental fs: Fix race between truncate and write last block
* aba5f5754be4 ANDROID: fuse-bpf: Do not change bpf program in lookups
* dd72bb259fa9 UPSTREAM: usb: gadget: u_serial: Add null pointer check in gserial_resume
* a2ee0d8df380 UPSTREAM: binder: Gracefully handle BINDER_TYPE_FDA objects with num_fds=0
* 9cdb4e5812fa UPSTREAM: binder: Address corner cases in deferred copy and fixup
* 884fec935c51 UPSTREAM: binder: fix pointer cast warning
* 0502554803f0 UPSTREAM: binder: defer copies of pre-patched txn data
* a9afae9aa409 UPSTREAM: binder: read pre-translated fds from sender buffer
* 7887b13e6be4 UPSTREAM: net_sched: reject TCF_EM_SIMPLE case for complex ematch module
* 89eccb84959f UPSTREAM: ext4: add inode table check in __ext4_get_inode_loc to aovid possible infinite loop
* fda78dabcaec Revert "ANDROID: GKI: Add vendor hook to binder transaction"
* c404b74d5f1e ANDROID: GKI: Update the ABI xml representation for fuse-bpf
* 7a1cca7dbd8e ANDROID: fuse-bpf: Add /sys/fs flags for fuse-bpf version
* f5f4199c102a ANDROID: fuse-bpf v1.1
* bff9debefdec ANDROID: GKI: update xiaomi symbol list
* 5a6502af1102 ANDROID: psi: Add vendor hooks for PSI tracing
* af8dfb011fd0 FROMLIST: input: Add KEY_CAMERA_FOCUS event in HID
* 79b3761c89ae BACKPORT: sched/core: Fix use-after-free bug in dup_user_cpus_ptr()
* a838fd5d0888 Revert "FROMGIT: sched: Add __releases annotations to affine_move_task()"
* 5767bdca07c5 Revert "BACKPORT: FROMGIT: sched: Introduce affinity_context"
* 158d54a8a831 Revert "BACKPORT: FROMGIT: sched: Always preserve the user requested cpumask"
* 92bd55bc5225 Revert "FROMLIST: sched: Fix use-after-free bug in dup_user_cpus_ptr()"
* bd82038474ec Revert "BACKPORT: FROMGIT: sched: Enforce user requested affinity"
* 0f54a1c923a1 Revert "FROMGIT: sched: Always clear user_cpus_ptr in do_set_cpus_allowed()"
* 97c7d8de1ddf Revert "ANDROID: sched: Keep sched_class::set_cpus_allowed stable"
* 4ef9aa1b493e Revert "ANDROID: sched: Move scratch_mask to a percpu variable"
* aa272796660e BACKPORT: of: reserved_mem: Have kmemleak ignore dynamically allocated reserved mem
* 20c1f0a6d2c6 Revert "BACKPORT: FROMGIT: mm/cma.c: make kmemleak aware of all CMA regions"
* 5862eafd8ef7 Revert "FROMGIT: mm/cma.c: delete kmemleak objects when freeing CMA areas to buddy at boot"
* 5c6418ddee6c Revert "UPSTREAM: mm: kmemleak: alloc gray object for reserved region with direct map"
* 45a51d2eb8c7 ANDROID: GKI: Update symbol list for Amlogic
* d41e54aefb92 ANDROID: GKI: Add symbol list for ZEKU
* 32d4e80df4cb ANDROID: dm-bow: Add ABI documentation
* 88e27b17aab6 ANDROID: dm-bow: Fix 5.15 compatibility issue
* 63a1e5f1d07a Revert "ANDROID: dm-bow: remove dm-bow"
* d07a013cd06f ANDROID: vendor_hook: fix the error record of rwsem
* 5fcf93b31647 ANDROID: ABI: Update allowed list for QCOM
* 16e7178e5875 ANDROID: GKI: Update abi_gki_aarch64_qcom symbols
* 4ef0a7dff1c4 ANDROID: crypto: testmgr - add back deleted hctr2 test vectors
* 2cde0330aa31 ANDROID: abi_gki_aarch64_qcom: Add rpmsg_rx_done and zap_vma_ptes
* 810133cb61fe ANDROID: cpuidle-psci: Fix suspicious RCU usage
* 6f810b08ef10 FROMGIT: usb: gadget: configfs: Restrict symlink creation is UDC already binded
* 9dff37ba7b7e ANDROID: Update symbol list for sunxi
* 18eaf71786cf FROMGIT: scsi: ufs: Try harder to change the power mode
* cfc314cd6f03 UPSTREAM: scsi: ufs: Reduce the START STOP UNIT timeout
* 6a9193a0ff96 UPSTREAM: 9p/fd: fix issue of list_del corruption in p9_fd_cancel()
* b4c3ac472028 UPSTREAM: fs: do not update freeing inode i_io_list
* b607fae9000f UPSTREAM: f2fs: fix to invalidate dcc->f2fs_issue_discard in error path
* 0b34c91b8367 FROMGIT: wifi: cfg80211: Fix extended KCK key length check in nl80211_set_rekey_data()
* f719d33f1144 UPSTREAM: iommu/iova: Fix alloc iova overflows issue
* 43c604d36ef2 UPSTREAM: iommu: Avoid races around device probe
* 613751d732f4 ANDROID: GKI: Update abi_gki_aarch64_pasa
* 2f7c6eb5876b ANDROID: softirq: Refine RT defer softirq
* 286300ece413 UPSTREAM: wifi: wilc1000: validate number of channels
* 7594f016edaf UPSTREAM: wifi: wilc1000: validate pairwise and authentication suite offsets
* d9a54ce812bf UPSTREAM: wifi: wilc1000: validate length of IEEE80211_P2P_ATTR_OPER_CHANNEL attribute
* 0be098594735 UPSTREAM: media: dvb-core: Fix UAF due to refcount races at releasing
* e5905d8ab396 ANDROID: Update the GKI symbol list and ABI XML
* 984241bdc04f UPSTREAM: efi: rt-wrapper: Add missing include
* ec6fe823507b UPSTREAM: arm64: efi: Execute runtime services from a dedicated stack
* 003dacfcee54 UPSTREAM: KVM: x86/mmu: Fix race condition in direct_page_fault
* 19987d1e7fee UPSTREAM: usb: gadget: uvc: Rename bmInterfaceFlags -> bmInterlaceFlags
* 6d2ec81c11aa ANDROID: GKI: KASAN: disable INLINE
* ae0a1eb8308a ANDROID: GKI: Update symbol list for mtk
* 9a8dcea6abcf ANDROID: usb: f_accessory: Check buffer size when initialised via composite
* 2a298e88eb2c UPSTREAM: drm/shmem-helper: Avoid vm_open error paths
* 2c76d2b9c5d2 UPSTREAM: proc: avoid integer type confusion in get_proc_long
* cc6c5c7fa237 UPSTREAM: ALSA: pcm: Move rwsem lock inside snd_ctl_elem_read to prevent UAF
* 0861407d6e2d UPSTREAM: proc: proc_skip_spaces() shouldn't think it is working on C strings
* 3cf30601b034 UPSTREAM: usb: gadget: f_hid: fix f_hidg lifetime vs cdev
* 8864b0342f70 UPSTREAM: nfp: fix use-after-free in area_cache_get()
* 9563d286197b FROMGIT: scsi: ufs: Modify Tactive time setting conditions
* afe869b80a61 ANDROID: gki_defconfig: disable various x86 and hw flags
* 4dc28fe92869 UPSTREAM: usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait
.xml file is updated due to new symbols being now tracked:
76 function symbol(s) added
'u64 __blkg_prfill_rwstat(struct seq_file*, struct blkg_policy_data*, const struct blkg_rwstat_sample*)'
'u64 __blkg_prfill_u64(struct seq_file*, struct blkg_policy_data*, u64)'
'void __free_iova(struct iova_domain*, struct iova*)'
'int __traceiter_android_vh_modify_thermal_throttle_update(void*, struct thermal_zone_device*, bool*)'
'int __traceiter_android_vh_mpam_set(void*, struct task_struct*, struct task_struct*)'
'int __traceiter_android_vh_mutex_can_spin_on_owner(void*, struct mutex*, int*)'
'int __traceiter_android_vh_mutex_opt_spin_finish(void*, struct mutex*, bool)'
'int __traceiter_android_vh_mutex_opt_spin_start(void*, struct mutex*, bool*, int*)'
'int __traceiter_android_vh_psi_group(void*, struct psi_group*)'
'int __traceiter_android_vh_rwsem_can_spin_on_owner(void*, struct rw_semaphore*, bool*)'
'int __traceiter_android_vh_rwsem_opt_spin_finish(void*, struct rw_semaphore*, bool)'
'int __traceiter_android_vh_rwsem_opt_spin_start(void*, struct rw_semaphore*, bool*, int*, bool)'
'int __traceiter_wbc_writepage(void*, struct writeback_control*, struct backing_dev_info*)'
'struct iova* alloc_iova(struct iova_domain*, unsigned long int, unsigned long int, bool)'
'const char* bdi_dev_name(struct backing_dev_info*)'
'void blkcg_print_blkgs(struct seq_file*, struct blkcg*, u64(*)(struct seq_file*, struct blkg_policy_data*, int), const struct blkcg_policy*, int, bool)'
'void blkg_conf_finish(struct blkg_conf_ctx*)'
'int blkg_conf_prep(struct blkcg*, const struct blkcg_policy*, char*, struct blkg_conf_ctx*)'
'u64 blkg_prfill_rwstat(struct seq_file*, struct blkg_policy_data*, int)'
'void blkg_rwstat_exit(struct blkg_rwstat*)'
'int blkg_rwstat_init(struct blkg_rwstat*, gfp_t)'
'void blkg_rwstat_recursive_sum(struct blkcg_gq*, struct blkcg_policy*, int, struct blkg_rwstat_sample*)'
'u64 clockevent_delta2ns(unsigned long int, struct clock_event_device*)'
'void clockevents_register_device(struct clock_event_device*)'
'int crypto_authenc_extractkeys(struct crypto_authenc_keys*, const u8*, unsigned int)'
'struct dentry* d_alloc_name(struct dentry*, const char*)'
'void* devm_pci_remap_cfg_resource(struct device*, struct resource*)'
'void* devm_pci_remap_cfgspace(struct device*, resource_size_t, resource_size_t)'
'void devm_release_resource(struct device*, struct resource*)'
'int divider_determine_rate(struct clk_hw*, struct clk_rate_request*, const struct clk_div_table*, u8, unsigned long int)'
'struct iova* find_iova(struct iova_domain*, unsigned long int)'
'struct file_system_type* get_fs_type(const char*)'
'unsigned int get_next_ino()'
'int get_tree_single(struct fs_context*, int(*)(struct super_block*, struct fs_context*))'
'struct iio_channel* iio_channel_get_all(struct device*)'
'void iio_channel_release_all(struct iio_channel*)'
'struct iio_buffer* iio_kfifo_allocate()'
'ssize_t iio_read_const_attr(struct device*, struct device_attribute*, char*)'
'irqreturn_t iio_trigger_generic_data_rdy_poll(int, void*)'
'void iio_triggered_buffer_cleanup(struct iio_dev*)'
'int iio_triggered_buffer_setup_ext(struct iio_dev*, irqreturn_t(*)(int, void*), irqreturn_t(*)(int, void*), const struct iio_buffer_setup_ops*, const struct attribute**)'
'int iio_update_buffers(struct iio_dev*, struct iio_buffer*, struct iio_buffer*)'
'bool iio_validate_scan_mask_onehot(struct iio_dev*, const unsigned long int*)'
'bool input_device_enabled(struct input_dev*)'
'void input_set_poll_interval(struct input_dev*, unsigned int)'
'int input_setup_polling(struct input_dev*, void(*)(struct input_dev*))'
'struct io_cq* ioc_lookup_icq(struct io_context*, struct request_queue*)'
'int iova_cache_get()'
'void iova_cache_put()'
'void irq_domain_associate_many(struct irq_domain*, unsigned int, irq_hw_number_t, int)'
'void iterate_supers_type(struct file_system_type*, void(*)(struct super_block*, void*), void*)'
'void kill_litter_super(struct super_block*)'
'int mmc_set_blocklen(struct mmc_card*, unsigned int)'
'int netdev_set_num_tc(struct net_device*, u8)'
'int netdev_set_tc_queue(struct net_device*, u8, u16, u16)'
'struct net_device* netdev_upper_get_next_dev_rcu(struct net_device*, struct list_head**)'
'unsigned long int nr_free_buffer_pages()'
'int of_pci_get_max_link_speed(struct device_node*)'
'bool pci_ats_supported(struct pci_dev*)'
'void pci_disable_ats(struct pci_dev*)'
'int pci_enable_ats(struct pci_dev*, int)'
'int rpmsg_rx_done(struct rpmsg_endpoint*, void*)'
'int scsi_register_driver(struct device_driver*)'
'void sdhci_adma_write_desc(struct sdhci_host*, void**, dma_addr_t, int, unsigned int)'
'void sdhci_set_uhs_signaling(struct sdhci_host*, unsigned int)'
'size_t sg_copy_buffer(struct scatterlist*, unsigned int, void*, size_t, off_t, bool)'
'size_t sg_zero_buffer(struct scatterlist*, unsigned int, size_t, off_t)'
'int simple_statfs(struct dentry*, struct kstatfs*)'
'int sysfs_create_mount_point(struct kobject*, const char*)'
'void sysfs_remove_mount_point(struct kobject*, const char*)'
'unsigned char tty_get_char_size(unsigned int)'
'int ufshcd_system_freeze(struct device*)'
'int ufshcd_system_restore(struct device*)'
'int ufshcd_system_thaw(struct device*)'
'int usbnet_get_ethernet_addr(struct usbnet*, int)'
'void zap_vma_ptes(struct vm_area_struct*, unsigned long int, unsigned long int)'
16 variable symbol(s) added
'struct tracepoint __tracepoint_android_vh_modify_thermal_throttle_update'
'struct tracepoint __tracepoint_android_vh_mpam_set'
'struct tracepoint __tracepoint_android_vh_mutex_can_spin_on_owner'
'struct tracepoint __tracepoint_android_vh_mutex_opt_spin_finish'
'struct tracepoint __tracepoint_android_vh_mutex_opt_spin_start'
'struct tracepoint __tracepoint_android_vh_psi_group'
'struct tracepoint __tracepoint_android_vh_rwsem_can_spin_on_owner'
'struct tracepoint __tracepoint_android_vh_rwsem_opt_spin_finish'
'struct tracepoint __tracepoint_android_vh_rwsem_opt_spin_start'
'struct tracepoint __tracepoint_wbc_writepage'
'struct static_key_true io_cgrp_subsys_on_dfl_key'
'const unsigned char pcie_link_speed[16]'
'unsigned long int phy_basic_features[2]'
'unsigned long int phy_gbit_features[2]'
'const struct inode_operations simple_dir_inode_operations'
'const struct file_operations simple_dir_operations'
type 'enum bpf_prog_type' changed
enumerator 'BPF_PROG_TYPE_FUSE' (32) was added
Change-Id: Icab4315e6ba42d246424150be9dbd58a8bd98133
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
diff --git a/BUILD.bazel b/BUILD.bazel
index 52ae4e4a..b5270e1 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -22,6 +22,7 @@
"android/abi_gki_aarch64_general",
"android/abi_gki_aarch64_honor",
"android/abi_gki_aarch64_imx",
+ "android/abi_gki_aarch64_lenovo",
"android/abi_gki_aarch64_mtk",
"android/abi_gki_aarch64_mtktv",
"android/abi_gki_aarch64_oplus",
@@ -38,6 +39,7 @@
"android/abi_gki_aarch64_virtual_device_removed",
"android/abi_gki_aarch64_vivo",
"android/abi_gki_aarch64_xiaomi",
+ "android/abi_gki_aarch64_zeku",
]
define_common_kernels(target_configs = {
diff --git a/Documentation/ABI/testing/configfs-usb-gadget-uvc b/Documentation/ABI/testing/configfs-usb-gadget-uvc
index 611b23e..f00cff6 100644
--- a/Documentation/ABI/testing/configfs-usb-gadget-uvc
+++ b/Documentation/ABI/testing/configfs-usb-gadget-uvc
@@ -197,7 +197,7 @@
read-only
bmaControls this format's data for bmaControls in
the streaming header
- bmInterfaceFlags specifies interlace information,
+ bmInterlaceFlags specifies interlace information,
read-only
bAspectRatioY the X dimension of the picture aspect
ratio, read-only
@@ -253,7 +253,7 @@
read-only
bmaControls this format's data for bmaControls in
the streaming header
- bmInterfaceFlags specifies interlace information,
+ bmInterlaceFlags specifies interlace information,
read-only
bAspectRatioY the X dimension of the picture aspect
ratio, read-only
diff --git a/Documentation/ABI/testing/dm-bow b/Documentation/ABI/testing/dm-bow
new file mode 100644
index 0000000..d663e81
--- /dev/null
+++ b/Documentation/ABI/testing/dm-bow
@@ -0,0 +1,19 @@
+What: /sys/block/dm-<num>/bow/free
+Date: January 2023
+KernelVersion: 5.15
+Contact: paullawrence@google.com
+Description: free space
+ Free space on device in bytes. Only valid in state 0
+Users: Android vold to determine if there is sufficient space for expected size
+ of checksum
+
+What: /sys/block/dm-<num>/bow/state
+Date: January 2023
+KernelVersion: 5.15
+Contact: paullawrence@google.com
+Description: dm-bow state
+ Read-write string containing 0, 1 or 2
+ 0: Trim mode
+ 1: Checkpoint mode
+ 2: Committed mode
+ See Documentation/device-mapper/dm-bow for details
diff --git a/Documentation/ABI/testing/sysfs-fs-fuse b/Documentation/ABI/testing/sysfs-fs-fuse
new file mode 100644
index 0000000..b995684
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-fs-fuse
@@ -0,0 +1,19 @@
+What: /sys/fs/fuse/features/fuse_bpf
+Date: December 2022
+Contact: Paul Lawrence <paullawrence@google.com>
+Description:
+ Read-only file that contains the word 'supported' if fuse-bpf is
+ supported, does not exist otherwise
+
+What: /sys/fs/fuse/bpf_prog_type_fuse
+Date: December 2022
+Contact: Paul Lawrence <paullawrence@google.com>
+Description:
+ bpf_prog_type_fuse defines the program type of bpf programs that
+ may be passed to fuse-bpf. For upstream bpf program types, this
+ is a constant defined in a contiguous array of constants.
+ bpf_prog_type_fuse is appended to the end of the list, so it may
+ change and therefore its value must be read from this file.
+
+ Contents is ASCII decimal representation of bpf_prog_type_fuse
+
diff --git a/Documentation/ABI/testing/sysfs-fs-incfs b/Documentation/ABI/testing/sysfs-fs-incfs
index 690c687..e4e05f9 100644
--- a/Documentation/ABI/testing/sysfs-fs-incfs
+++ b/Documentation/ABI/testing/sysfs-fs-incfs
@@ -15,6 +15,12 @@
Description: Reads 'supported'. Present if zstd compression is supported
for data blocks.
+What: /sys/fs/incremental-fs/features/bugfix_throttling
+Date: January 2023
+Contact: Paul Lawrence <paullawrence@google.com>
+Description: Reads 'supported'. Present if the throttling lock bug is fixed
+ https://android-review.git.corp.google.com/c/kernel/common/+/2381827
+
What: /sys/fs/incremental-fs/instances/[name]
Date: April 2021
Contact: Paul Lawrence <paullawrence@google.com>
diff --git a/Documentation/device-mapper/dm-bow.txt b/Documentation/device-mapper/dm-bow.txt
new file mode 100644
index 0000000..e3fc4d2
--- /dev/null
+++ b/Documentation/device-mapper/dm-bow.txt
@@ -0,0 +1,99 @@
+dm_bow (backup on write)
+========================
+
+dm_bow is a device mapper driver that uses the free space on a device to back up
+data that is overwritten. The changes can then be committed by a simple state
+change, or rolled back by removing the dm_bow device and running a command line
+utility over the underlying device.
+
+dm_bow has three states, set by writing ‘1’ or ‘2’ to /sys/block/dm-?/bow/state.
+It is only possible to go from state 0 (initial state) to state 1, and then from
+state 1 to state 2.
+
+State 0: dm_bow collects all trims to the device and assumes that these mark
+free space on the overlying file system that can be safely used. Typically the
+mount code would create the dm_bow device, mount the file system, call the
+FITRIM ioctl on the file system then switch to state 1. These trims are not
+propagated to the underlying device.
+
+State 1: All writes to the device cause the underlying data to be backed up to
+the free (trimmed) area as needed in such a way as they can be restored.
+However, the writes, with one exception, then happen exactly as they would
+without dm_bow, so the device is always in a good final state. The exception is
+that sector 0 is used to keep a log of the latest changes, both to indicate that
+we are in this state and to allow rollback. See below for all details. If there
+isn't enough free space, writes are failed with -ENOSPC.
+
+State 2: The transition to state 2 triggers replacing the special sector 0 with
+the normal sector 0, and the freeing of all state information. dm_bow then
+becomes a pass-through driver, allowing the device to continue to be used with
+minimal performance impact.
+
+Usage
+=====
+dm-bow takes one command line parameter, the name of the underlying device.
+
+dm-bow will typically be used in the following way. dm-bow will be loaded with a
+suitable underlying device and the resultant device will be mounted. A file
+system trim will be issued via the FITRIM ioctl, then the device will be
+switched to state 1. The file system will now be used as normal. At some point,
+the changes can either be committed by switching to state 2, or rolled back by
+unmounting the file system, removing the dm-bow device and running the command
+line utility. Note that rebooting the device will be equivalent to unmounting
+and removing, but the command line utility must still be run
+
+Details of operation in state 1
+===============================
+
+dm_bow maintains a type for all sectors. A sector can be any of:
+
+SECTOR0
+SECTOR0_CURRENT
+UNCHANGED
+FREE
+CHANGED
+BACKUP
+
+SECTOR0 is the first sector on the device, and is used to hold the log of
+changes. This is the one exception.
+
+SECTOR0_CURRENT is a sector picked from the FREE sectors, and is where reads and
+writes from the true sector zero are redirected to. Note that like any backup
+sector, if the sector is written to directly, it must be moved again.
+
+UNCHANGED means that the sector has not been changed since we entered state 1.
+Thus if it is written to or trimmed, the contents must first be backed up.
+
+FREE means that the sector was trimmed in state 0 and has not yet been written
+to or used for backup. On being written to, a FREE sector is changed to CHANGED.
+
+CHANGED means that the sector has been modified, and can be further modified
+without further backup.
+
+BACKUP means that this is a free sector being used as a backup. On being written
+to, the contents must first be backed up again.
+
+All backup operations are logged to the first sector. The log sector has the
+format:
+--------------------------------------------------------
+| Magic | Count | Sequence | Log entry | Log entry | …
+--------------------------------------------------------
+
+Magic is a magic number. Count is the number of log entries. Sequence is 0
+initially. A log entry is
+
+-----------------------------------
+| Source | Dest | Size | Checksum |
+-----------------------------------
+
+When SECTOR0 is full, the log sector is backed up and another empty log sector
+created with sequence number one higher. The first entry in any log entry with
+sequence > 0 therefore must be the log of the backing up of the previous log
+sector. Note that sequence is not strictly needed, but is a useful sanity check
+and potentially limits the time spent trying to restore a corrupted snapshot.
+
+On entering state 1, dm_bow has a list of free sectors. All other sectors are
+unchanged. Sector0_current is selected from the free sectors and the contents of
+sector 0 are copied there. The sector 0 is backed up, which triggers the first
+log entry to be written.
+
diff --git a/Documentation/filesystems/incfs.rst b/Documentation/filesystems/incfs.rst
index 19db303..f0fb1d0 100644
--- a/Documentation/filesystems/incfs.rst
+++ b/Documentation/filesystems/incfs.rst
@@ -35,6 +35,9 @@
/sys/fs/incremental-fs/features/zstd
Reads 'supported'. Present if zstd compression is supported for data blocks.
+/sys/fs/incremental-fs/features/bugfix_throttling
+ Reads 'supported'. Present if the throttling lock bug is fixed
+
Optional per mount
------------------
diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml
index 1a8f0b5..2c6dd52 100644
--- a/android/abi_gki_aarch64.xml
+++ b/android/abi_gki_aarch64.xml
@@ -53,6 +53,8 @@
<elf-symbol name='__blk_mq_end_request' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeab34e0c'/>
<elf-symbol name='__blk_rq_map_sg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4930ff59'/>
<elf-symbol name='__blkdev_issue_discard' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff3fe611'/>
+ <elf-symbol name='__blkg_prfill_rwstat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3452868'/>
+ <elf-symbol name='__blkg_prfill_u64' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a3cd729'/>
<elf-symbol name='__blockdev_direct_IO' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3ef2c900'/>
<elf-symbol name='__bread_gfp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8cb12e3b'/>
<elf-symbol name='__breadahead' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae5ef6cb'/>
@@ -147,6 +149,7 @@
<elf-symbol name='__filemap_set_wb_err' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x22a3a2ef'/>
<elf-symbol name='__find_get_block' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdba41715'/>
<elf-symbol name='__find_vma' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7d1fe95e'/>
+ <elf-symbol name='__free_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbc8a675b'/>
<elf-symbol name='__free_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5157c749'/>
<elf-symbol name='__fs_parse' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x85fc370d'/>
<elf-symbol name='__fscrypt_encrypt_symlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc57fca8'/>
@@ -617,7 +620,12 @@
<elf-symbol name='__traceiter_android_vh_modify_thermal_cpu_get_power' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea658355'/>
<elf-symbol name='__traceiter_android_vh_modify_thermal_request_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35e66620'/>
<elf-symbol name='__traceiter_android_vh_modify_thermal_target_freq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xedb4afc8'/>
+ <elf-symbol name='__traceiter_android_vh_modify_thermal_throttle_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96812b4f'/>
+ <elf-symbol name='__traceiter_android_vh_mpam_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8c7db79'/>
+ <elf-symbol name='__traceiter_android_vh_mutex_can_spin_on_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55cc62c7'/>
<elf-symbol name='__traceiter_android_vh_mutex_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4ab78cf'/>
+ <elf-symbol name='__traceiter_android_vh_mutex_opt_spin_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x288b14b4'/>
+ <elf-symbol name='__traceiter_android_vh_mutex_opt_spin_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd7dde3'/>
<elf-symbol name='__traceiter_android_vh_mutex_unlock_slowpath' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe350fdab'/>
<elf-symbol name='__traceiter_android_vh_mutex_wait_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb94345e6'/>
<elf-symbol name='__traceiter_android_vh_mutex_wait_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x717d1bd1'/>
@@ -633,6 +641,7 @@
<elf-symbol name='__traceiter_android_vh_printk_caller_id' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x409ea043'/>
<elf-symbol name='__traceiter_android_vh_printk_ext_header' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35d0ca61'/>
<elf-symbol name='__traceiter_android_vh_printk_hotplug' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5728d98f'/>
+ <elf-symbol name='__traceiter_android_vh_psi_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10f97d22'/>
<elf-symbol name='__traceiter_android_vh_record_mutex_lock_starttime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x602544f5'/>
<elf-symbol name='__traceiter_android_vh_record_pcpu_rwsem_starttime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6f509622'/>
<elf-symbol name='__traceiter_android_vh_record_rtmutex_lock_starttime' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b9948c1'/>
@@ -641,7 +650,10 @@
<elf-symbol name='__traceiter_android_vh_rmqueue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x513a0462'/>
<elf-symbol name='__traceiter_android_vh_rproc_recovery' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x12a1a6c0'/>
<elf-symbol name='__traceiter_android_vh_rproc_recovery_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59d30c47'/>
+ <elf-symbol name='__traceiter_android_vh_rwsem_can_spin_on_owner' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea47bf87'/>
<elf-symbol name='__traceiter_android_vh_rwsem_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xce4ae038'/>
+ <elf-symbol name='__traceiter_android_vh_rwsem_opt_spin_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e410cdc'/>
+ <elf-symbol name='__traceiter_android_vh_rwsem_opt_spin_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x901addbf'/>
<elf-symbol name='__traceiter_android_vh_rwsem_read_wait_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x608da8a2'/>
<elf-symbol name='__traceiter_android_vh_rwsem_wake' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7a813da7'/>
<elf-symbol name='__traceiter_android_vh_rwsem_wake_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd987012'/>
@@ -767,6 +779,7 @@
<elf-symbol name='__traceiter_unmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3ec851c'/>
<elf-symbol name='__traceiter_usb_gadget_connect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7563ff8d'/>
<elf-symbol name='__traceiter_usb_gadget_disconnect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x437e0a6e'/>
+ <elf-symbol name='__traceiter_wbc_writepage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x848b6b63'/>
<elf-symbol name='__traceiter_workqueue_execute_end' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd7ca165'/>
<elf-symbol name='__traceiter_workqueue_execute_start' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b629b42'/>
<elf-symbol name='__traceiter_xdp_exception' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa43592f6'/>
@@ -899,6 +912,7 @@
<elf-symbol name='alloc_contig_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73abb180'/>
<elf-symbol name='alloc_etherdev_mqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8df1e551'/>
<elf-symbol name='alloc_io_pgtable_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5bdbba72'/>
+ <elf-symbol name='alloc_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd6e713e'/>
<elf-symbol name='alloc_netdev_mqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb2f23b63'/>
<elf-symbol name='alloc_page_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24ce50db'/>
<elf-symbol name='alloc_pages_exact' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fc72f0e'/>
@@ -954,6 +968,7 @@
<elf-symbol name='bdev_read_only' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfe6d8a90'/>
<elf-symbol name='bdevname' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb9b4334'/>
<elf-symbol name='bdi_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x514bad2f'/>
+ <elf-symbol name='bdi_dev_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b01623f'/>
<elf-symbol name='bdi_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc23d275e'/>
<elf-symbol name='bdi_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6eee1e73'/>
<elf-symbol name='bgpio_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x59e13f27'/>
@@ -1081,6 +1096,7 @@
<elf-symbol name='blkcg_deactivate_policy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8173ed0e'/>
<elf-symbol name='blkcg_policy_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73b3f7c6'/>
<elf-symbol name='blkcg_policy_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7fff7cc4'/>
+ <elf-symbol name='blkcg_print_blkgs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x411a9213'/>
<elf-symbol name='blkdev_compat_ptr_ioctl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8520bda'/>
<elf-symbol name='blkdev_get_by_dev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f9a403c'/>
<elf-symbol name='blkdev_get_by_path' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3fcde105'/>
@@ -1088,7 +1104,13 @@
<elf-symbol name='blkdev_issue_flush' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7e807449'/>
<elf-symbol name='blkdev_issue_zeroout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4d014d8'/>
<elf-symbol name='blkdev_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67a7f125'/>
+ <elf-symbol name='blkg_conf_finish' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe7d30ae0'/>
+ <elf-symbol name='blkg_conf_prep' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd2df33a3'/>
<elf-symbol name='blkg_lookup_slowpath' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc6895884'/>
+ <elf-symbol name='blkg_prfill_rwstat' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa2d98337'/>
+ <elf-symbol name='blkg_rwstat_exit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19edd064'/>
+ <elf-symbol name='blkg_rwstat_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf0b6ba7'/>
+ <elf-symbol name='blkg_rwstat_recursive_sum' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1151dc5'/>
<elf-symbol name='block_invalidatepage' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x334b6464'/>
<elf-symbol name='block_is_partially_uptodate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc71c32f5'/>
<elf-symbol name='block_truncate_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e97be8a'/>
@@ -1282,7 +1304,9 @@
<elf-symbol name='clk_unregister_gate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8506baa8'/>
<elf-symbol name='clkdev_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc3b20f84'/>
<elf-symbol name='clkdev_drop' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84a5c5ce'/>
+ <elf-symbol name='clockevent_delta2ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8d1962'/>
<elf-symbol name='clockevents_config_and_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6c905b1'/>
+ <elf-symbol name='clockevents_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x60326b59'/>
<elf-symbol name='clocks_calc_mult_shift' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62bb09bf'/>
<elf-symbol name='clocksource_mmio_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f4fc1ef'/>
<elf-symbol name='clocksource_mmio_readl_up' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49b9dfb4'/>
@@ -1422,6 +1446,7 @@
<elf-symbol name='crypto_alloc_skcipher' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2235b050'/>
<elf-symbol name='crypto_alloc_sync_skcipher' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28780bb5'/>
<elf-symbol name='crypto_attr_alg_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9a11a0fc'/>
+ <elf-symbol name='crypto_authenc_extractkeys' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2479193e'/>
<elf-symbol name='crypto_check_attr_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4934bdd0'/>
<elf-symbol name='crypto_cipher_encrypt_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x55ef31d7'/>
<elf-symbol name='crypto_cipher_setkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4a6b4031'/>
@@ -1501,6 +1526,7 @@
<elf-symbol name='current_work' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd75ee543'/>
<elf-symbol name='d_add' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2f9c3209'/>
<elf-symbol name='d_add_ci' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6dc1857'/>
+ <elf-symbol name='d_alloc_name' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7c5aad8'/>
<elf-symbol name='d_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x46e5f2bf'/>
<elf-symbol name='d_find_alias' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x11c492cb'/>
<elf-symbol name='d_instantiate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x329d78c4'/>
@@ -1831,6 +1857,8 @@
<elf-symbol name='devm_of_platform_populate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe74e115b'/>
<elf-symbol name='devm_of_pwm_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8c6c580e'/>
<elf-symbol name='devm_pci_alloc_host_bridge' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9618c53d'/>
+ <elf-symbol name='devm_pci_remap_cfg_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2a0c1626'/>
+ <elf-symbol name='devm_pci_remap_cfgspace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cf17398'/>
<elf-symbol name='devm_phy_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4976235b'/>
<elf-symbol name='devm_phy_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5a76bd3'/>
<elf-symbol name='devm_phy_optional_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa24d9b0'/>
@@ -1867,6 +1895,7 @@
<elf-symbol name='devm_regulator_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc151236f'/>
<elf-symbol name='devm_regulator_register_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1f5c258'/>
<elf-symbol name='devm_regulator_unregister_notifier' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83bce697'/>
+ <elf-symbol name='devm_release_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb306128'/>
<elf-symbol name='devm_remove_action' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e69a909'/>
<elf-symbol name='devm_request_any_context_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x366cbccd'/>
<elf-symbol name='devm_request_pci_bus_resources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3b1e0f6'/>
@@ -1902,6 +1931,7 @@
<elf-symbol name='disk_stack_limits' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80b22036'/>
<elf-symbol name='disk_start_io_acct' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaf84ca3'/>
<elf-symbol name='display_timings_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b4c240a'/>
+ <elf-symbol name='divider_determine_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x958b70dd'/>
<elf-symbol name='divider_get_val' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e798ffb'/>
<elf-symbol name='divider_recalc_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaed8e548'/>
<elf-symbol name='divider_ro_round_rate_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f8b7fae'/>
@@ -2675,6 +2705,7 @@
<elf-symbol name='find_extend_vma' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x84bf623a'/>
<elf-symbol name='find_get_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90b01573'/>
<elf-symbol name='find_inode_nowait' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ca74f5e'/>
+ <elf-symbol name='find_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3790d7c9'/>
<elf-symbol name='find_pid_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9542fd3e'/>
<elf-symbol name='find_task_by_vpid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6e07172'/>
<elf-symbol name='find_user' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x508716e5'/>
@@ -2899,10 +2930,12 @@
<elf-symbol name='get_device_system_crosststamp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e5c9224'/>
<elf-symbol name='get_each_dmabuf' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf8e831f'/>
<elf-symbol name='get_each_object_track' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ff900e4'/>
+ <elf-symbol name='get_fs_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x393e814f'/>
<elf-symbol name='get_governor_parent_kobj' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5e38d599'/>
<elf-symbol name='get_kernel_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5b51a2'/>
<elf-symbol name='get_net_ns_by_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8f872c'/>
<elf-symbol name='get_net_ns_by_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78a69b54'/>
+ <elf-symbol name='get_next_ino' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe953b21f'/>
<elf-symbol name='get_option' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb0e10781'/>
<elf-symbol name='get_options' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x868acba5'/>
<elf-symbol name='get_page_owner_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbdd70345'/>
@@ -2920,6 +2953,7 @@
<elf-symbol name='get_task_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x806ce477'/>
<elf-symbol name='get_thermal_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd99fe99a'/>
<elf-symbol name='get_tree_bdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd49bbd04'/>
+ <elf-symbol name='get_tree_single' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x67ce2fcf'/>
<elf-symbol name='get_unmapped_area' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x69dc3863'/>
<elf-symbol name='get_unused_fd_flags' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa843805a'/>
<elf-symbol name='get_user_ifreq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x33fc2a31'/>
@@ -3192,7 +3226,9 @@
<elf-symbol name='iio_buffer_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x704cf684'/>
<elf-symbol name='iio_buffer_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd008be8d'/>
<elf-symbol name='iio_channel_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f4022e2'/>
+ <elf-symbol name='iio_channel_get_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1281098c'/>
<elf-symbol name='iio_channel_release' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b7a6504'/>
+ <elf-symbol name='iio_channel_release_all' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd4b877bf'/>
<elf-symbol name='iio_dealloc_pollfunc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c27ed80'/>
<elf-symbol name='iio_device_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x398bf38f'/>
<elf-symbol name='iio_device_attach_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1896d888'/>
@@ -3203,6 +3239,7 @@
<elf-symbol name='iio_device_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3438a517'/>
<elf-symbol name='iio_get_channel_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43cbc1df'/>
<elf-symbol name='iio_get_time_ns' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd587aacb'/>
+ <elf-symbol name='iio_kfifo_allocate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x79fbf1f2'/>
<elf-symbol name='iio_pollfunc_store_time' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf76bbeb'/>
<elf-symbol name='iio_push_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe0bbeac1'/>
<elf-symbol name='iio_push_to_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb70d5e3f'/>
@@ -3210,13 +3247,19 @@
<elf-symbol name='iio_read_channel_processed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2435705d'/>
<elf-symbol name='iio_read_channel_raw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x19a2a1e'/>
<elf-symbol name='iio_read_channel_scale' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10b8ec94'/>
+ <elf-symbol name='iio_read_const_attr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdbe815e1'/>
<elf-symbol name='iio_read_mount_matrix' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90100782'/>
<elf-symbol name='iio_show_mount_matrix' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x131e3217'/>
<elf-symbol name='iio_trigger_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb9597d8'/>
<elf-symbol name='iio_trigger_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6cbb2869'/>
+ <elf-symbol name='iio_trigger_generic_data_rdy_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d6bcdcb'/>
<elf-symbol name='iio_trigger_notify_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfb4a9fd4'/>
<elf-symbol name='iio_trigger_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3970d75b'/>
<elf-symbol name='iio_trigger_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x433fa49d'/>
+ <elf-symbol name='iio_triggered_buffer_cleanup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x83d4b035'/>
+ <elf-symbol name='iio_triggered_buffer_setup_ext' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40f791fb'/>
+ <elf-symbol name='iio_update_buffers' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41949c3e'/>
+ <elf-symbol name='iio_validate_scan_mask_onehot' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x483f3668'/>
<elf-symbol name='iio_write_channel_attribute' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x73f2aa5a'/>
<elf-symbol name='iio_write_channel_raw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9c01fbfc'/>
<elf-symbol name='ilookup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfa62da3e'/>
@@ -3261,6 +3304,7 @@
<elf-symbol name='input_alloc_absinfo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d64962b'/>
<elf-symbol name='input_allocate_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e3bb8f1'/>
<elf-symbol name='input_close_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcf9ef4a8'/>
+ <elf-symbol name='input_device_enabled' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x457260a3'/>
<elf-symbol name='input_event' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdd007012'/>
<elf-symbol name='input_ff_create' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd8da26c5'/>
<elf-symbol name='input_ff_create_memless' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17dd354a'/>
@@ -3282,7 +3326,9 @@
<elf-symbol name='input_scancode_to_scalar' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c256e1f'/>
<elf-symbol name='input_set_abs_params' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x420c430d'/>
<elf-symbol name='input_set_capability' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x344f2409'/>
+ <elf-symbol name='input_set_poll_interval' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x71fc88ff'/>
<elf-symbol name='input_set_timestamp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf8e95ac5'/>
+ <elf-symbol name='input_setup_polling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ce7c773'/>
<elf-symbol name='input_unregister_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b8866fb'/>
<elf-symbol name='input_unregister_handle' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8246bf52'/>
<elf-symbol name='input_unregister_handler' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa6523ef7'/>
@@ -3299,6 +3345,7 @@
<elf-symbol name='invalidate_mapping_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x813bc518'/>
<elf-symbol name='io_schedule' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93a6e0b2'/>
<elf-symbol name='io_schedule_timeout' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbc4f89e'/>
+ <elf-symbol name='ioc_lookup_icq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x406089f4'/>
<elf-symbol name='iomap_dio_complete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x344a2c84'/>
<elf-symbol name='iommu_alloc_resv_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf40724'/>
<elf-symbol name='iommu_attach_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5939a898'/>
@@ -3356,6 +3403,8 @@
<elf-symbol name='iov_iter_revert' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacf7aacd'/>
<elf-symbol name='iov_iter_single_seg_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9160b01d'/>
<elf-symbol name='iov_iter_zero' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x26913ed2'/>
+ <elf-symbol name='iova_cache_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x438d8df2'/>
+ <elf-symbol name='iova_cache_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7061ef3'/>
<elf-symbol name='ip6_find_1stfragopt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3f0c45ff'/>
<elf-symbol name='ip6_local_out' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe10f917c'/>
<elf-symbol name='ip6_redirect' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4ea39e16'/>
@@ -3414,6 +3463,7 @@
<elf-symbol name='irq_do_set_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6339391b'/>
<elf-symbol name='irq_domain_add_legacy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x75d8e8dd'/>
<elf-symbol name='irq_domain_alloc_irqs_parent' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x245655f7'/>
+ <elf-symbol name='irq_domain_associate_many' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3e95203'/>
<elf-symbol name='irq_domain_create_hierarchy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x78cded33'/>
<elf-symbol name='irq_domain_disconnect_hierarchy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xacc1fea0'/>
<elf-symbol name='irq_domain_free_irqs_common' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1436aef4'/>
@@ -3464,6 +3514,7 @@
<elf-symbol name='iter_file_splice_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc249b27'/>
<elf-symbol name='iterate_dir' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xff354035'/>
<elf-symbol name='iterate_fd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xca27c3a5'/>
+ <elf-symbol name='iterate_supers_type' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb826dc56'/>
<elf-symbol name='iunique' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd5b19234'/>
<elf-symbol name='iw_handler_get_spy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xda102b47'/>
<elf-symbol name='iw_handler_get_thrspy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x141c3bfe'/>
@@ -3515,6 +3566,7 @@
<elf-symbol name='kill_anon_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x62289ff3'/>
<elf-symbol name='kill_block_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbcc4f9f4'/>
<elf-symbol name='kill_fasync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc3c831e'/>
+ <elf-symbol name='kill_litter_super' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x703d7d07'/>
<elf-symbol name='kill_pid' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b88bc83'/>
<elf-symbol name='kmalloc_order' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbe80fdb'/>
<elf-symbol name='kmalloc_order_trace' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb8b9f817'/>
@@ -3868,6 +3920,7 @@
<elf-symbol name='mmc_select_timing' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4dd7e1f8'/>
<elf-symbol name='mmc_send_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8853f365'/>
<elf-symbol name='mmc_send_tuning' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9dec77b5'/>
+ <elf-symbol name='mmc_set_blocklen' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8e1b2e6c'/>
<elf-symbol name='mmc_set_bus_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c5df88a'/>
<elf-symbol name='mmc_set_bus_width' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf6debd0b'/>
<elf-symbol name='mmc_set_clock' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf4547be5'/>
@@ -3943,10 +3996,13 @@
<elf-symbol name='netdev_rx_handler_register' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xead7afa1'/>
<elf-symbol name='netdev_rx_handler_unregister' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb2621b'/>
<elf-symbol name='netdev_set_default_ethtool_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x635968e1'/>
+ <elf-symbol name='netdev_set_num_tc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4147447f'/>
+ <elf-symbol name='netdev_set_tc_queue' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x558440ef'/>
<elf-symbol name='netdev_state_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeb94dc1c'/>
<elf-symbol name='netdev_update_features' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e9c0fae'/>
<elf-symbol name='netdev_upper_dev_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa418cded'/>
<elf-symbol name='netdev_upper_dev_unlink' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf12f1b7b'/>
+ <elf-symbol name='netdev_upper_get_next_dev_rcu' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2fa70555'/>
<elf-symbol name='netdev_warn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3c779fee'/>
<elf-symbol name='netif_carrier_off' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x533f4833'/>
<elf-symbol name='netif_carrier_on' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x10229dce'/>
@@ -3999,6 +4055,7 @@
<elf-symbol name='noop_direct_IO' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89b3ccb2'/>
<elf-symbol name='noop_llseek' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd1208e05'/>
<elf-symbol name='notify_change' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9ef55a3e'/>
+ <elf-symbol name='nr_free_buffer_pages' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x27fa66e1'/>
<elf-symbol name='nr_ipi_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x215054f8'/>
<elf-symbol name='ns_capable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb88f6031'/>
<elf-symbol name='ns_to_kernel_old_timeval' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6b853d06'/>
@@ -4138,6 +4195,7 @@
<elf-symbol name='of_parse_phandle_with_args' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x765c77f7'/>
<elf-symbol name='of_parse_phandle_with_fixed_args' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x89104b27'/>
<elf-symbol name='of_pci_get_devfn' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x90c42d10'/>
+ <elf-symbol name='of_pci_get_max_link_speed' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xde2e3260'/>
<elf-symbol name='of_pci_parse_bus_range' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9436ac52'/>
<elf-symbol name='of_pci_range_parser_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0a25ae9'/>
<elf-symbol name='of_pci_range_parser_one' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5c3dbb96'/>
@@ -4237,6 +4295,7 @@
<elf-symbol name='pci_alloc_irq_vectors_affinity' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x43faea6d'/>
<elf-symbol name='pci_assign_resource' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x518a5e9f'/>
<elf-symbol name='pci_assign_unassigned_bus_resources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa7ee1a4f'/>
+ <elf-symbol name='pci_ats_supported' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe5097d2f'/>
<elf-symbol name='pci_bus_add_devices' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf68407'/>
<elf-symbol name='pci_bus_assign_resources' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6c65a407'/>
<elf-symbol name='pci_bus_resource_n' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c51352c'/>
@@ -4252,6 +4311,7 @@
<elf-symbol name='pci_dev_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24e336ed'/>
<elf-symbol name='pci_device_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72412ebd'/>
<elf-symbol name='pci_device_is_present' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc9660b71'/>
+ <elf-symbol name='pci_disable_ats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe381ac22'/>
<elf-symbol name='pci_disable_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbade0f65'/>
<elf-symbol name='pci_disable_link_state' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeaf6beca'/>
<elf-symbol name='pci_disable_msi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd6ae4223'/>
@@ -4259,6 +4319,7 @@
<elf-symbol name='pci_disable_pcie_error_reporting' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfd00466f'/>
<elf-symbol name='pci_disable_sriov' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaad5808c'/>
<elf-symbol name='pci_enable_atomic_ops_to_root' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe725351e'/>
+ <elf-symbol name='pci_enable_ats' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa07c8519'/>
<elf-symbol name='pci_enable_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d3142c4'/>
<elf-symbol name='pci_enable_device_mem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65999657'/>
<elf-symbol name='pci_enable_msi' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c5a5118'/>
@@ -4989,6 +5050,7 @@
<elf-symbol name='rpmsg_poll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf60685b8'/>
<elf-symbol name='rpmsg_register_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x61978e79'/>
<elf-symbol name='rpmsg_release_channel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36dab3db'/>
+ <elf-symbol name='rpmsg_rx_done' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8624a2fc'/>
<elf-symbol name='rpmsg_send' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc4c51d'/>
<elf-symbol name='rpmsg_sendto' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfaa7be47'/>
<elf-symbol name='rpmsg_set_signals' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fbe4d23'/>
@@ -5118,6 +5180,7 @@
<elf-symbol name='scsi_normalize_sense' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfbad3cf0'/>
<elf-symbol name='scsi_print_command' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7b07baf'/>
<elf-symbol name='scsi_print_sense_hdr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1c9473cc'/>
+ <elf-symbol name='scsi_register_driver' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe6ae0c99'/>
<elf-symbol name='scsi_register_interface' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x51d2ced7'/>
<elf-symbol name='scsi_remove_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d935945'/>
<elf-symbol name='scsi_remove_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf6952d7'/>
@@ -5130,6 +5193,7 @@
<elf-symbol name='scsi_unblock_requests' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4fbfc120'/>
<elf-symbol name='sdev_prefix_printk' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x23a274a0'/>
<elf-symbol name='sdhci_add_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb1442b8a'/>
+ <elf-symbol name='sdhci_adma_write_desc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfc7d6d28'/>
<elf-symbol name='sdhci_cleanup_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xddf06ad3'/>
<elf-symbol name='sdhci_cqe_disable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaa6e8088'/>
<elf-symbol name='sdhci_cqe_enable' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1d66473'/>
@@ -5150,6 +5214,7 @@
<elf-symbol name='sdhci_runtime_suspend_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x96d36979'/>
<elf-symbol name='sdhci_set_bus_width' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd130fba9'/>
<elf-symbol name='sdhci_set_power_noreg' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80930048'/>
+ <elf-symbol name='sdhci_set_uhs_signaling' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x66c0bcd2'/>
<elf-symbol name='sdhci_setup_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f95bd19'/>
<elf-symbol name='sdhci_suspend_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xed1e0f5a'/>
<elf-symbol name='sdio_align_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa5de62ef'/>
@@ -5250,6 +5315,7 @@
<elf-symbol name='sg_alloc_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a2f6702'/>
<elf-symbol name='sg_alloc_table_chained' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1bee4974'/>
<elf-symbol name='sg_alloc_table_from_pages_segment' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xdf889f6a'/>
+ <elf-symbol name='sg_copy_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8ac743de'/>
<elf-symbol name='sg_copy_from_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x905695ab'/>
<elf-symbol name='sg_copy_to_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2b8ab42'/>
<elf-symbol name='sg_free_table' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f5b4fe4'/>
@@ -5266,6 +5332,7 @@
<elf-symbol name='sg_next' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x87b8798d'/>
<elf-symbol name='sg_pcopy_from_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd0fe8d51'/>
<elf-symbol name='sg_pcopy_to_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xea778fab'/>
+ <elf-symbol name='sg_zero_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2d192c70'/>
<elf-symbol name='sget_fc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf74e8135'/>
<elf-symbol name='shash_free_singlespawn_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x49ac4a91'/>
<elf-symbol name='shash_register_instance' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa4c04000'/>
@@ -5290,6 +5357,7 @@
<elf-symbol name='simple_get_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x852e19d2'/>
<elf-symbol name='simple_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7b9dbc42'/>
<elf-symbol name='simple_read_from_buffer' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x619cb7dd'/>
+ <elf-symbol name='simple_statfs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc4b2e1d7'/>
<elf-symbol name='simple_strtol' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb742fd7'/>
<elf-symbol name='simple_strtoll' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd7e56a4e'/>
<elf-symbol name='simple_strtoul' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x20000329'/>
@@ -5766,6 +5834,7 @@
<elf-symbol name='sysfs_create_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1da5bdd1'/>
<elf-symbol name='sysfs_create_groups' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd3fe314a'/>
<elf-symbol name='sysfs_create_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x38677ca'/>
+ <elf-symbol name='sysfs_create_mount_point' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40179c7a'/>
<elf-symbol name='sysfs_emit' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe783e261'/>
<elf-symbol name='sysfs_emit_at' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x99f2d00a'/>
<elf-symbol name='sysfs_merge_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xfdec6bd4'/>
@@ -5778,6 +5847,7 @@
<elf-symbol name='sysfs_remove_groups' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x30c19b90'/>
<elf-symbol name='sysfs_remove_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b93a483'/>
<elf-symbol name='sysfs_remove_link_from_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4402ef19'/>
+ <elf-symbol name='sysfs_remove_mount_point' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x28d9d5b9'/>
<elf-symbol name='sysfs_streq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x222e7ce2'/>
<elf-symbol name='sysfs_unmerge_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc37cfd7f'/>
<elf-symbol name='sysfs_update_group' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x841f2264'/>
@@ -5945,6 +6015,7 @@
<elf-symbol name='tty_driver_kref_put' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xef0763e'/>
<elf-symbol name='tty_encode_baud_rate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x54cfd2ef'/>
<elf-symbol name='tty_flip_buffer_push' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf0104123'/>
+ <elf-symbol name='tty_get_char_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf72a65ea'/>
<elf-symbol name='tty_hangup' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x25d8f29c'/>
<elf-symbol name='tty_insert_flip_string_fixed_flag' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3b69cd4c'/>
<elf-symbol name='tty_kclose' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe1b0a3b8'/>
@@ -6098,8 +6169,11 @@
<elf-symbol name='ufshcd_runtime_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbafed781'/>
<elf-symbol name='ufshcd_shutdown' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x684ba32e'/>
<elf-symbol name='ufshcd_suspend_prepare' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcd3a0a7e'/>
+ <elf-symbol name='ufshcd_system_freeze' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3266acae'/>
+ <elf-symbol name='ufshcd_system_restore' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x98325377'/>
<elf-symbol name='ufshcd_system_resume' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa1b3aa03'/>
<elf-symbol name='ufshcd_system_suspend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x68a59b34'/>
+ <elf-symbol name='ufshcd_system_thaw' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1847e552'/>
<elf-symbol name='ufshcd_transfer_rsp_status' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x992d807e'/>
<elf-symbol name='ufshcd_uic_change_pwr_mode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8d553ef2'/>
<elf-symbol name='ufshcd_uic_hibern8_enter' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x452fcee7'/>
@@ -6338,6 +6412,7 @@
<elf-symbol name='usbnet_generic_cdc_bind' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4f9de791'/>
<elf-symbol name='usbnet_get_drvinfo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x381aa5e8'/>
<elf-symbol name='usbnet_get_endpoints' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xae1963cd'/>
+ <elf-symbol name='usbnet_get_ethernet_addr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb6f103e1'/>
<elf-symbol name='usbnet_get_link' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x76137a5e'/>
<elf-symbol name='usbnet_get_link_ksettings_mii' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x509f05e9'/>
<elf-symbol name='usbnet_get_msglevel' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c8945c8'/>
@@ -6783,6 +6858,7 @@
<elf-symbol name='xt_unregister_target' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf34cef62'/>
<elf-symbol name='xt_unregister_targets' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x518b8265'/>
<elf-symbol name='yield' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x760a0f4f'/>
+ <elf-symbol name='zap_vma_ptes' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x95e13d4e'/>
<elf-symbol name='zlib_deflate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf2c43f3f'/>
<elf-symbol name='zlib_deflateEnd' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc890c008'/>
<elf-symbol name='zlib_deflateInit2' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5a0b73d0'/>
@@ -7077,7 +7153,12 @@
<elf-symbol name='__tracepoint_android_vh_modify_thermal_cpu_get_power' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x72ac2026'/>
<elf-symbol name='__tracepoint_android_vh_modify_thermal_request_freq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x240f59e0'/>
<elf-symbol name='__tracepoint_android_vh_modify_thermal_target_freq' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa965d530'/>
+ <elf-symbol name='__tracepoint_android_vh_modify_thermal_throttle_update' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24a40163'/>
+ <elf-symbol name='__tracepoint_android_vh_mpam_set' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x315217a'/>
+ <elf-symbol name='__tracepoint_android_vh_mutex_can_spin_on_owner' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x80558a5f'/>
<elf-symbol name='__tracepoint_android_vh_mutex_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x57f88efe'/>
+ <elf-symbol name='__tracepoint_android_vh_mutex_opt_spin_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xa0e404b1'/>
+ <elf-symbol name='__tracepoint_android_vh_mutex_opt_spin_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb4b26237'/>
<elf-symbol name='__tracepoint_android_vh_mutex_unlock_slowpath' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf5dc2012'/>
<elf-symbol name='__tracepoint_android_vh_mutex_wait_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf33e17b'/>
<elf-symbol name='__tracepoint_android_vh_mutex_wait_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x63ae9c7e'/>
@@ -7094,6 +7175,7 @@
<elf-symbol name='__tracepoint_android_vh_printk_caller_id' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x422dde96'/>
<elf-symbol name='__tracepoint_android_vh_printk_ext_header' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf400ae3e'/>
<elf-symbol name='__tracepoint_android_vh_printk_hotplug' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7f6382dd'/>
+ <elf-symbol name='__tracepoint_android_vh_psi_group' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1b54b5dd'/>
<elf-symbol name='__tracepoint_android_vh_ptype_head' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x40b365e3'/>
<elf-symbol name='__tracepoint_android_vh_record_mutex_lock_starttime' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x1deb1eec'/>
<elf-symbol name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x18111c92'/>
@@ -7105,7 +7187,10 @@
<elf-symbol name='__tracepoint_android_vh_rproc_recovery_set' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf3adfa5d'/>
<elf-symbol name='__tracepoint_android_vh_rtmutex_wait_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9397e82e'/>
<elf-symbol name='__tracepoint_android_vh_rtmutex_wait_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc443185a'/>
+ <elf-symbol name='__tracepoint_android_vh_rwsem_can_spin_on_owner' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x17248e7'/>
<elf-symbol name='__tracepoint_android_vh_rwsem_init' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x554a1937'/>
+ <elf-symbol name='__tracepoint_android_vh_rwsem_opt_spin_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7dc06ab2'/>
+ <elf-symbol name='__tracepoint_android_vh_rwsem_opt_spin_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9da0a858'/>
<elf-symbol name='__tracepoint_android_vh_rwsem_read_wait_finish' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc2e8063f'/>
<elf-symbol name='__tracepoint_android_vh_rwsem_read_wait_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x65ad336b'/>
<elf-symbol name='__tracepoint_android_vh_rwsem_wake' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x41026d41'/>
@@ -7242,6 +7327,7 @@
<elf-symbol name='__tracepoint_unmap' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c36cc85'/>
<elf-symbol name='__tracepoint_usb_gadget_connect' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5b9cc4fa'/>
<elf-symbol name='__tracepoint_usb_gadget_disconnect' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x574ab5a6'/>
+ <elf-symbol name='__tracepoint_wbc_writepage' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6e59f821'/>
<elf-symbol name='__tracepoint_workqueue_execute_end' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xecbfa711'/>
<elf-symbol name='__tracepoint_workqueue_execute_start' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8db61368'/>
<elf-symbol name='__tracepoint_xdp_exception' size='72' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8b7a698b'/>
@@ -7328,6 +7414,7 @@
<elf-symbol name='init_task' size='4608' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xaf60e2d8'/>
<elf-symbol name='init_user_ns' size='656' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e5bcdca'/>
<elf-symbol name='init_uts_ns' size='432' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcccbdadf'/>
+ <elf-symbol name='io_cgrp_subsys_on_dfl_key' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7de6cc23'/>
<elf-symbol name='iomem_resource' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc7da062f'/>
<elf-symbol name='ioport_resource' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6bbf1b3e'/>
<elf-symbol name='ipv6_stub' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4ec6265'/>
@@ -7383,8 +7470,11 @@
<elf-symbol name='param_ops_ulong' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xefc8860a'/>
<elf-symbol name='param_ops_ushort' size='32' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35701c2d'/>
<elf-symbol name='pci_bus_type' size='208' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5ed7d00a'/>
+ <elf-symbol name='pcie_link_speed' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe4b064f9'/>
<elf-symbol name='percpu_counter_batch' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5240ee7'/>
+ <elf-symbol name='phy_basic_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd17d2a22'/>
<elf-symbol name='phy_basic_t1_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbbf4dfbe'/>
+ <elf-symbol name='phy_gbit_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x8effb505'/>
<elf-symbol name='phy_gbit_fibre_features' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xb98bb315'/>
<elf-symbol name='platform_bus' size='912' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xeacdfb3f'/>
<elf-symbol name='platform_bus_type' size='208' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x648ffea5'/>
@@ -7410,6 +7500,8 @@
<elf-symbol name='sched_feat_names' size='200' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x36707baf'/>
<elf-symbol name='sched_uclamp_used' size='16' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x56a37c5'/>
<elf-symbol name='scsi_command_size_tbl' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x334da4e'/>
+ <elf-symbol name='simple_dir_inode_operations' size='256' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xf392a209'/>
+ <elf-symbol name='simple_dir_operations' size='288' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x880cfd6f'/>
<elf-symbol name='snd_ecards_limit' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3971b4df'/>
<elf-symbol name='snd_pcm_std_chmaps' size='96' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4e1b99f'/>
<elf-symbol name='snd_soc_pm_ops' size='192' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x198825b6'/>
@@ -11684,15 +11776,15 @@
<enumerator name='DRM_CONNECTOR_UNREGISTERED' value='2'/>
</enum-decl>
<typedef-decl name='seqcount_spinlock_t' type-id='0f5450f3' filepath='include/linux/seqlock.h' line='277' column='1' id='0b9c5397'/>
- <class-decl name='hid_report_enum' size-in-bits='16576' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='499' column='1' id='0b9e92f3'>
+ <class-decl name='hid_report_enum' size-in-bits='16576' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='500' column='1' id='0b9e92f3'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='numbered' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='500' column='1'/>
+ <var-decl name='numbered' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='501' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='report_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='501' column='1'/>
+ <var-decl name='report_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='502' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='report_id_hash' type-id='042b23b6' visibility='default' filepath='include/linux/hid.h' line='502' column='1'/>
+ <var-decl name='report_id_hash' type-id='042b23b6' visibility='default' filepath='include/linux/hid.h' line='503' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='0174792d' size-in-bits='64' id='0ba194b9'/>
@@ -11991,12 +12083,12 @@
</enum-decl>
<pointer-type-def type-id='51dff603' size-in-bits='64' id='0c90828b'/>
<pointer-type-def type-id='36051b76' size-in-bits='64' id='0c90c619'/>
- <class-decl name='cfg80211_ssid' size-in-bits='264' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2473' column='1' id='0c960fcf'>
+ <class-decl name='cfg80211_ssid' size-in-bits='264' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2505' column='1' id='0c960fcf'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='2474' column='1'/>
+ <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='2506' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='2475' column='1'/>
+ <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='2507' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='0c98f83d'>
@@ -12005,6 +12097,7 @@
<parameter type-id='bd54fe1a'/>
<return type-id='bd54fe1a'/>
</function-type>
+ <pointer-type-def type-id='29e79c3f' size-in-bits='64' id='0c9ab50f'/>
<enum-decl name='thermal_trend' filepath='include/linux/thermal.h' line='40' column='1' id='0ca326b7'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='THERMAL_TREND_STABLE' value='0'/>
@@ -12443,15 +12536,15 @@
<var-decl name='dbg_dev_root' type-id='27675065' visibility='default' filepath='include/linux/dmaengine.h' line='954' column='1'/>
</data-member>
</class-decl>
- <class-decl name='nl80211_wowlan_tcp_data_token_feature' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5685' column='1' id='0dd56ffa'>
+ <class-decl name='nl80211_wowlan_tcp_data_token_feature' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5710' column='1' id='0dd56ffa'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='min_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5686' column='1'/>
+ <var-decl name='min_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5711' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='max_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5686' column='1'/>
+ <var-decl name='max_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5711' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='bufsize' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5686' column='1'/>
+ <var-decl name='bufsize' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5711' column='1'/>
</data-member>
</class-decl>
<array-type-def dimensions='1' type-id='8f048e17' size-in-bits='368' id='0ddb15d8'>
@@ -12618,42 +12711,42 @@
<var-decl name='bNumberPowerFilters' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/usb/cdc.h' line='144' column='1'/>
</data-member>
</class-decl>
- <class-decl name='hid_ll_driver' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='812' column='1' id='0e5e2ca6'>
+ <class-decl name='hid_ll_driver' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='813' column='1' id='0e5e2ca6'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='start' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='813' column='1'/>
+ <var-decl name='start' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='814' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='stop' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='814' column='1'/>
+ <var-decl name='stop' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='815' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='open' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='816' column='1'/>
+ <var-decl name='open' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='817' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='close' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='817' column='1'/>
+ <var-decl name='close' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='818' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='power' type-id='8cefa062' visibility='default' filepath='include/linux/hid.h' line='819' column='1'/>
+ <var-decl name='power' type-id='8cefa062' visibility='default' filepath='include/linux/hid.h' line='820' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='parse' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='821' column='1'/>
+ <var-decl name='parse' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='822' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='request' type-id='8f2ea2db' visibility='default' filepath='include/linux/hid.h' line='823' column='1'/>
+ <var-decl name='request' type-id='8f2ea2db' visibility='default' filepath='include/linux/hid.h' line='824' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='wait' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='826' column='1'/>
+ <var-decl name='wait' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='827' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='raw_request' type-id='94b60312' visibility='default' filepath='include/linux/hid.h' line='828' column='1'/>
+ <var-decl name='raw_request' type-id='94b60312' visibility='default' filepath='include/linux/hid.h' line='829' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='output_report' type-id='587d2ba7' visibility='default' filepath='include/linux/hid.h' line='832' column='1'/>
+ <var-decl name='output_report' type-id='587d2ba7' visibility='default' filepath='include/linux/hid.h' line='833' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='idle' type-id='6fed6bf0' visibility='default' filepath='include/linux/hid.h' line='834' column='1'/>
+ <var-decl name='idle' type-id='6fed6bf0' visibility='default' filepath='include/linux/hid.h' line='835' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='may_wakeup' type-id='cfc95081' visibility='default' filepath='include/linux/hid.h' line='835' column='1'/>
+ <var-decl name='may_wakeup' type-id='cfc95081' visibility='default' filepath='include/linux/hid.h' line='836' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='0e61b6d4'>
@@ -12699,18 +12792,18 @@
<var-decl name='icmpv6msgdev' type-id='793f0d19' visibility='default' filepath='include/net/if_inet6.h' line='166' column='1'/>
</data-member>
</class-decl>
- <class-decl name='ipv6_rt_hdr' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='49' column='1' id='0eae882e'>
+ <class-decl name='ipv6_rt_hdr' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='50' column='1' id='0eae882e'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='nexthdr' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='50' column='1'/>
+ <var-decl name='nexthdr' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='51' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8'>
- <var-decl name='hdrlen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='51' column='1'/>
+ <var-decl name='hdrlen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='52' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
- <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='52' column='1'/>
+ <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='53' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='24'>
- <var-decl name='segments_left' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='53' column='1'/>
+ <var-decl name='segments_left' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='54' column='1'/>
</data-member>
</class-decl>
<typedef-decl name='mm_context_t' type-id='46f77458' filepath='arch/arm64/include/asm/mmu.h' line='28' column='1' id='0eb9c3fd'/>
@@ -13169,24 +13262,24 @@
</function-type>
<pointer-type-def type-id='bd4974e4' size-in-bits='64' id='100f2106'/>
<qualified-type-def type-id='78e57306' const='yes' id='10117043'/>
- <class-decl name='trace_subsystem_dir' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1300' column='1' id='10143522'>
+ <class-decl name='trace_subsystem_dir' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1298' column='1' id='10143522'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='1301' column='1'/>
+ <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='1299' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='subsystem' type-id='841939f3' visibility='default' filepath='kernel/trace/trace.h' line='1302' column='1'/>
+ <var-decl name='subsystem' type-id='841939f3' visibility='default' filepath='kernel/trace/trace.h' line='1300' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='tr' type-id='898c1076' visibility='default' filepath='kernel/trace/trace.h' line='1303' column='1'/>
+ <var-decl name='tr' type-id='898c1076' visibility='default' filepath='kernel/trace/trace.h' line='1301' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='entry' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='1304' column='1'/>
+ <var-decl name='entry' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='1302' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='ref_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1305' column='1'/>
+ <var-decl name='ref_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1303' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='nr_events' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1306' column='1'/>
+ <var-decl name='nr_events' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1304' column='1'/>
</data-member>
</class-decl>
<class-decl name='v4l2_frmsize_discrete' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/videodev2.h' line='815' column='1' id='10186cf6'>
@@ -13661,54 +13754,54 @@
</array-type-def>
<pointer-type-def type-id='14617e76' size-in-bits='64' id='117460b0'/>
<pointer-type-def type-id='cf396435' size-in-bits='64' id='11777d05'/>
- <class-decl name='ieee80211_iface_combination' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5028' column='1' id='1179f27e'>
+ <class-decl name='ieee80211_iface_combination' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5083' column='1' id='1179f27e'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='limits' type-id='2fde6795' visibility='default' filepath='include/net/cfg80211.h' line='5033' column='1'/>
+ <var-decl name='limits' type-id='2fde6795' visibility='default' filepath='include/net/cfg80211.h' line='5088' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='num_different_channels' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5039' column='1'/>
+ <var-decl name='num_different_channels' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5094' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='max_interfaces' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5045' column='1'/>
+ <var-decl name='max_interfaces' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5100' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='112'>
- <var-decl name='n_limits' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5051' column='1'/>
+ <var-decl name='n_limits' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5106' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='120'>
- <var-decl name='beacon_int_infra_match' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5058' column='1'/>
+ <var-decl name='beacon_int_infra_match' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5113' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='radar_detect_widths' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5064' column='1'/>
+ <var-decl name='radar_detect_widths' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5119' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='136'>
- <var-decl name='radar_detect_regions' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5070' column='1'/>
+ <var-decl name='radar_detect_regions' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5125' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='beacon_int_min_gcd' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5083' column='1'/>
+ <var-decl name='beacon_int_min_gcd' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5138' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5085' column='1'/>
+ <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5140' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5086' column='1'/>
+ <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5141' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5087' column='1'/>
+ <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5142' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5088' column='1'/>
+ <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5143' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5091' column='1'/>
+ <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5146' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5092' column='1'/>
+ <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5147' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5093' column='1'/>
+ <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5148' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5094' column='1'/>
+ <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5149' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='117b6b23'>
@@ -14447,117 +14540,117 @@
</data-member>
</class-decl>
<pointer-type-def type-id='4d855bce' size-in-bits='64' id='12a060a4'/>
- <class-decl name='cfg80211_sched_scan_request' size-in-bits='2112' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2701' column='1' id='12a2e88f'>
+ <class-decl name='cfg80211_sched_scan_request' size-in-bits='2112' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2733' column='1' id='12a2e88f'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='reqid' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2702' column='1'/>
+ <var-decl name='reqid' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2734' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='ssids' type-id='a1fa7fb7' visibility='default' filepath='include/net/cfg80211.h' line='2703' column='1'/>
+ <var-decl name='ssids' type-id='a1fa7fb7' visibility='default' filepath='include/net/cfg80211.h' line='2735' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='n_ssids' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2704' column='1'/>
+ <var-decl name='n_ssids' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2736' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='n_channels' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2705' column='1'/>
+ <var-decl name='n_channels' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2737' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='scan_width' type-id='95d46034' visibility='default' filepath='include/net/cfg80211.h' line='2706' column='1'/>
+ <var-decl name='scan_width' type-id='95d46034' visibility='default' filepath='include/net/cfg80211.h' line='2738' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='ie' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='2707' column='1'/>
+ <var-decl name='ie' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='2739' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='ie_len' type-id='b59d7dce' visibility='default' filepath='include/net/cfg80211.h' line='2708' column='1'/>
+ <var-decl name='ie_len' type-id='b59d7dce' visibility='default' filepath='include/net/cfg80211.h' line='2740' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2709' column='1'/>
+ <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2741' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='match_sets' type-id='ea00c914' visibility='default' filepath='include/net/cfg80211.h' line='2710' column='1'/>
+ <var-decl name='match_sets' type-id='ea00c914' visibility='default' filepath='include/net/cfg80211.h' line='2742' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='n_match_sets' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2711' column='1'/>
+ <var-decl name='n_match_sets' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2743' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='544'>
- <var-decl name='min_rssi_thold' type-id='a7832498' visibility='default' filepath='include/net/cfg80211.h' line='2712' column='1'/>
+ <var-decl name='min_rssi_thold' type-id='a7832498' visibility='default' filepath='include/net/cfg80211.h' line='2744' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='delay' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2713' column='1'/>
+ <var-decl name='delay' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2745' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='scan_plans' type-id='302e9391' visibility='default' filepath='include/net/cfg80211.h' line='2714' column='1'/>
+ <var-decl name='scan_plans' type-id='302e9391' visibility='default' filepath='include/net/cfg80211.h' line='2746' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='n_scan_plans' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2715' column='1'/>
+ <var-decl name='n_scan_plans' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='2747' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='736'>
- <var-decl name='mac_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2717' column='1'/>
+ <var-decl name='mac_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2749' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='784'>
- <var-decl name='mac_addr_mask' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2718' column='1'/>
+ <var-decl name='mac_addr_mask' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2750' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='relative_rssi_set' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2720' column='1'/>
+ <var-decl name='relative_rssi_set' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2752' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='840'>
- <var-decl name='relative_rssi' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='2721' column='1'/>
+ <var-decl name='relative_rssi' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='2753' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='864'>
- <var-decl name='rssi_adjust' type-id='5da08e25' visibility='default' filepath='include/net/cfg80211.h' line='2722' column='1'/>
+ <var-decl name='rssi_adjust' type-id='5da08e25' visibility='default' filepath='include/net/cfg80211.h' line='2754' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='wiphy' type-id='666fb412' visibility='default' filepath='include/net/cfg80211.h' line='2725' column='1'/>
+ <var-decl name='wiphy' type-id='666fb412' visibility='default' filepath='include/net/cfg80211.h' line='2757' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg80211.h' line='2726' column='1'/>
+ <var-decl name='dev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg80211.h' line='2758' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='scan_start' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='2727' column='1'/>
+ <var-decl name='scan_start' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='2759' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='report_results' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2728' column='1'/>
+ <var-decl name='report_results' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2760' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/net/cfg80211.h' line='2729' column='1'/>
+ <var-decl name='callback_head' type-id='e3d8ce29' visibility='default' filepath='include/net/cfg80211.h' line='2761' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2730' column='1'/>
+ <var-decl name='owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2762' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1376'>
- <var-decl name='nl_owner_dead' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2731' column='1'/>
+ <var-decl name='nl_owner_dead' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='2763' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='2732' column='1'/>
+ <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='2764' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2734' column='1'/>
+ <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2766' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
- <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2735' column='1'/>
+ <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2767' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
- <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2736' column='1'/>
+ <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2768' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1728'>
- <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2737' column='1'/>
+ <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2769' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1792'>
- <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2739' column='1'/>
+ <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2771' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1856'>
- <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2740' column='1'/>
+ <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2772' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1920'>
- <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2741' column='1'/>
+ <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2773' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1984'>
- <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2742' column='1'/>
+ <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2774' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2048'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2744' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='2776' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2112'>
- <var-decl name='channels' type-id='14cad687' visibility='default' filepath='include/net/cfg80211.h' line='2747' column='1'/>
+ <var-decl name='channels' type-id='14cad687' visibility='default' filepath='include/net/cfg80211.h' line='2779' column='1'/>
</data-member>
</class-decl>
<typedef-decl name='pgd_t' type-id='36d456a7' filepath='arch/arm64/include/asm/pgtable-types.h' line='39' column='1' id='12aa8ce4'/>
@@ -16431,51 +16524,51 @@
<enumerator name='HK_FLAG_KTHREAD' value='256'/>
</enum-decl>
<pointer-type-def type-id='5f0ccb86' size-in-bits='64' id='174bf37c'/>
- <class-decl name='cfg80211_wowlan_tcp' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3421' column='1' id='1752769a'>
+ <class-decl name='cfg80211_wowlan_tcp' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3453' column='1' id='1752769a'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='sock' type-id='13103032' visibility='default' filepath='include/net/cfg80211.h' line='3422' column='1'/>
+ <var-decl name='sock' type-id='13103032' visibility='default' filepath='include/net/cfg80211.h' line='3454' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='src' type-id='78a133c2' visibility='default' filepath='include/net/cfg80211.h' line='3423' column='1'/>
+ <var-decl name='src' type-id='78a133c2' visibility='default' filepath='include/net/cfg80211.h' line='3455' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='dst' type-id='78a133c2' visibility='default' filepath='include/net/cfg80211.h' line='3423' column='1'/>
+ <var-decl name='dst' type-id='78a133c2' visibility='default' filepath='include/net/cfg80211.h' line='3455' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='src_port' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='3424' column='1'/>
+ <var-decl name='src_port' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='144'>
- <var-decl name='dst_port' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='3424' column='1'/>
+ <var-decl name='dst_port' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='dst_mac' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='3425' column='1'/>
+ <var-decl name='dst_mac' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='3457' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='payload_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3426' column='1'/>
+ <var-decl name='payload_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3458' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='payload' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3427' column='1'/>
+ <var-decl name='payload' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3459' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='payload_seq' type-id='d5a1b375' visibility='default' filepath='include/net/cfg80211.h' line='3428' column='1'/>
+ <var-decl name='payload_seq' type-id='d5a1b375' visibility='default' filepath='include/net/cfg80211.h' line='3460' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='416'>
- <var-decl name='data_interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3429' column='1'/>
+ <var-decl name='data_interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3461' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='wake_len' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3430' column='1'/>
+ <var-decl name='wake_len' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3462' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='wake_data' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3431' column='1'/>
+ <var-decl name='wake_data' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3463' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='wake_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3431' column='1'/>
+ <var-decl name='wake_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3463' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='tokens_size' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3432' column='1'/>
+ <var-decl name='tokens_size' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='3464' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='672'>
- <var-decl name='payload_tok' type-id='2868c21b' visibility='default' filepath='include/net/cfg80211.h' line='3434' column='1'/>
+ <var-decl name='payload_tok' type-id='2868c21b' visibility='default' filepath='include/net/cfg80211.h' line='3466' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='010b0459' size-in-bits='64' id='17580109'/>
@@ -17310,18 +17403,18 @@
</data-member>
</class-decl>
<pointer-type-def type-id='74c76c4a' size-in-bits='64' id='19bc34e4'/>
- <class-decl name='hid_collection' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='433' column='1' id='19bef197'>
+ <class-decl name='hid_collection' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='434' column='1' id='19bef197'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='parent_idx' type-id='95e97e5e' visibility='default' filepath='include/linux/hid.h' line='434' column='1'/>
+ <var-decl name='parent_idx' type-id='95e97e5e' visibility='default' filepath='include/linux/hid.h' line='435' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='435' column='1'/>
+ <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='436' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='usage' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='436' column='1'/>
+ <var-decl name='usage' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='437' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='level' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='437' column='1'/>
+ <var-decl name='level' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='438' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='19bf080d'>
@@ -17822,77 +17915,77 @@
<var-decl name='base' type-id='58ba85d8' visibility='default' filepath='include/crypto/internal/hash.h' line='59' column='1'/>
</data-member>
</class-decl>
- <class-decl name='usb_driver' size-in-bits='2688' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1209' column='1' id='1ab3428c'>
+ <class-decl name='usb_driver' size-in-bits='2688' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1212' column='1' id='1ab3428c'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb.h' line='1210' column='1'/>
+ <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/usb.h' line='1213' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='probe' type-id='a324decb' visibility='default' filepath='include/linux/usb.h' line='1212' column='1'/>
+ <var-decl name='probe' type-id='a324decb' visibility='default' filepath='include/linux/usb.h' line='1215' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='disconnect' type-id='b6566954' visibility='default' filepath='include/linux/usb.h' line='1215' column='1'/>
+ <var-decl name='disconnect' type-id='b6566954' visibility='default' filepath='include/linux/usb.h' line='1218' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='unlocked_ioctl' type-id='52006477' visibility='default' filepath='include/linux/usb.h' line='1217' column='1'/>
+ <var-decl name='unlocked_ioctl' type-id='52006477' visibility='default' filepath='include/linux/usb.h' line='1220' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='suspend' type-id='31eb8cc0' visibility='default' filepath='include/linux/usb.h' line='1220' column='1'/>
+ <var-decl name='suspend' type-id='31eb8cc0' visibility='default' filepath='include/linux/usb.h' line='1223' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='resume' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1221' column='1'/>
+ <var-decl name='resume' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1224' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='reset_resume' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1222' column='1'/>
+ <var-decl name='reset_resume' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1225' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='pre_reset' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1224' column='1'/>
+ <var-decl name='pre_reset' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1227' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='post_reset' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1225' column='1'/>
+ <var-decl name='post_reset' type-id='46d1c941' visibility='default' filepath='include/linux/usb.h' line='1228' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='id_table' type-id='bc57058f' visibility='default' filepath='include/linux/usb.h' line='1227' column='1'/>
+ <var-decl name='id_table' type-id='bc57058f' visibility='default' filepath='include/linux/usb.h' line='1230' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='dev_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/usb.h' line='1228' column='1'/>
+ <var-decl name='dev_groups' type-id='c97de1ac' visibility='default' filepath='include/linux/usb.h' line='1231' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='dynids' type-id='cb08bae1' visibility='default' filepath='include/linux/usb.h' line='1230' column='1'/>
+ <var-decl name='dynids' type-id='cb08bae1' visibility='default' filepath='include/linux/usb.h' line='1233' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='drvwrap' type-id='33780378' visibility='default' filepath='include/linux/usb.h' line='1231' column='1'/>
+ <var-decl name='drvwrap' type-id='33780378' visibility='default' filepath='include/linux/usb.h' line='1234' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2368'>
- <var-decl name='no_dynamic_id' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1232' column='1'/>
+ <var-decl name='no_dynamic_id' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1235' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2369'>
- <var-decl name='supports_autosuspend' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1233' column='1'/>
+ <var-decl name='supports_autosuspend' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1236' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2370'>
- <var-decl name='disable_hub_initiated_lpm' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1234' column='1'/>
+ <var-decl name='disable_hub_initiated_lpm' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1237' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2371'>
- <var-decl name='soft_unbind' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1235' column='1'/>
+ <var-decl name='soft_unbind' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1238' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2432'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1237' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1240' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2496'>
- <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1238' column='1'/>
+ <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1241' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2560'>
- <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1239' column='1'/>
+ <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1242' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2624'>
- <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1240' column='1'/>
+ <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1243' column='1'/>
</data-member>
</class-decl>
- <class-decl name='cfg80211_sar_freq_ranges' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2083' column='1' id='1abb753c'>
+ <class-decl name='cfg80211_sar_freq_ranges' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2115' column='1' id='1abb753c'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='start_freq' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2084' column='1'/>
+ <var-decl name='start_freq' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2116' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='end_freq' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2085' column='1'/>
+ <var-decl name='end_freq' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2117' column='1'/>
</data-member>
</class-decl>
<typedef-decl name='seqcount_ww_mutex_t' type-id='b7e534b2' filepath='include/linux/seqlock.h' line='280' column='1' id='1abc0b16'/>
@@ -19342,39 +19435,39 @@
<pointer-type-def type-id='1beae906' size-in-bits='64' id='1ecd1044'/>
<pointer-type-def type-id='2922fb19' size-in-bits='64' id='1ed1e4cd'/>
<pointer-type-def type-id='76959226' size-in-bits='64' id='1ed3660c'/>
- <class-decl name='iphdr' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ip.h' line='86' column='1' id='1edbefa6'>
+ <class-decl name='iphdr' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ip.h' line='87' column='1' id='1edbefa6'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ihl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='88' column='1'/>
+ <var-decl name='ihl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='89' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4'>
- <var-decl name='version' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='89' column='1'/>
+ <var-decl name='version' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='90' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8'>
- <var-decl name='tos' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='96' column='1'/>
+ <var-decl name='tos' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='97' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
- <var-decl name='tot_len' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='97' column='1'/>
+ <var-decl name='tot_len' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='98' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='id' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='98' column='1'/>
+ <var-decl name='id' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='99' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='48'>
- <var-decl name='frag_off' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='99' column='1'/>
+ <var-decl name='frag_off' type-id='84a5c3d4' visibility='default' filepath='include/uapi/linux/ip.h' line='100' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='ttl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='100' column='1'/>
+ <var-decl name='ttl' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='101' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='72'>
- <var-decl name='protocol' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='101' column='1'/>
+ <var-decl name='protocol' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ip.h' line='102' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='80'>
- <var-decl name='check' type-id='7dac1e36' visibility='default' filepath='include/uapi/linux/ip.h' line='102' column='1'/>
+ <var-decl name='check' type-id='7dac1e36' visibility='default' filepath='include/uapi/linux/ip.h' line='103' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='saddr' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ip.h' line='103' column='1'/>
+ <var-decl name='saddr' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ip.h' line='104' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='daddr' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ip.h' line='104' column='1'/>
+ <var-decl name='daddr' type-id='78a133c2' visibility='default' filepath='include/uapi/linux/ip.h' line='105' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='1edc0ccb'>
@@ -20384,12 +20477,12 @@
</data-member>
</class-decl>
<pointer-type-def type-id='26527266' size-in-bits='64' id='211c185c'/>
- <class-decl name='ieee80211_txrx_stypes' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5098' column='1' id='21301fc9'>
+ <class-decl name='ieee80211_txrx_stypes' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5153' column='1' id='21301fc9'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='tx' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5099' column='1'/>
+ <var-decl name='tx' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5154' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
- <var-decl name='rx' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5099' column='1'/>
+ <var-decl name='rx' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5154' column='1'/>
</data-member>
</class-decl>
<class-decl name='ppp_channel_ops' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/ppp_channel.h' line='25' column='1' id='2134e0b8'>
@@ -20482,69 +20575,69 @@
<var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/drm/drm_flip_work.h' line='79' column='1'/>
</data-member>
</class-decl>
- <class-decl name='hid_driver' size-in-bits='2752' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='751' column='1' id='2185483d'>
+ <class-decl name='hid_driver' size-in-bits='2752' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='752' column='1' id='2185483d'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/hid.h' line='752' column='1'/>
+ <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/hid.h' line='753' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='id_table' type-id='f499bd02' visibility='default' filepath='include/linux/hid.h' line='753' column='1'/>
+ <var-decl name='id_table' type-id='f499bd02' visibility='default' filepath='include/linux/hid.h' line='754' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='dyn_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='755' column='1'/>
+ <var-decl name='dyn_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='756' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='dyn_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/hid.h' line='756' column='1'/>
+ <var-decl name='dyn_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/hid.h' line='757' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='match' type-id='5b9f5da4' visibility='default' filepath='include/linux/hid.h' line='758' column='1'/>
+ <var-decl name='match' type-id='5b9f5da4' visibility='default' filepath='include/linux/hid.h' line='759' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='probe' type-id='078f3b94' visibility='default' filepath='include/linux/hid.h' line='759' column='1'/>
+ <var-decl name='probe' type-id='078f3b94' visibility='default' filepath='include/linux/hid.h' line='760' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='remove' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='760' column='1'/>
+ <var-decl name='remove' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='761' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='report_table' type-id='2c4d0ce6' visibility='default' filepath='include/linux/hid.h' line='762' column='1'/>
+ <var-decl name='report_table' type-id='2c4d0ce6' visibility='default' filepath='include/linux/hid.h' line='763' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='raw_event' type-id='fe3a6ee7' visibility='default' filepath='include/linux/hid.h' line='763' column='1'/>
+ <var-decl name='raw_event' type-id='fe3a6ee7' visibility='default' filepath='include/linux/hid.h' line='764' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='usage_table' type-id='b473f54b' visibility='default' filepath='include/linux/hid.h' line='765' column='1'/>
+ <var-decl name='usage_table' type-id='b473f54b' visibility='default' filepath='include/linux/hid.h' line='766' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='event' type-id='8181b8c5' visibility='default' filepath='include/linux/hid.h' line='766' column='1'/>
+ <var-decl name='event' type-id='8181b8c5' visibility='default' filepath='include/linux/hid.h' line='767' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='report' type-id='e23057dc' visibility='default' filepath='include/linux/hid.h' line='768' column='1'/>
+ <var-decl name='report' type-id='e23057dc' visibility='default' filepath='include/linux/hid.h' line='769' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='report_fixup' type-id='a4f4a514' visibility='default' filepath='include/linux/hid.h' line='770' column='1'/>
+ <var-decl name='report_fixup' type-id='a4f4a514' visibility='default' filepath='include/linux/hid.h' line='771' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='input_mapping' type-id='d77ebcbf' visibility='default' filepath='include/linux/hid.h' line='773' column='1'/>
+ <var-decl name='input_mapping' type-id='d77ebcbf' visibility='default' filepath='include/linux/hid.h' line='774' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='input_mapped' type-id='d77ebcbf' visibility='default' filepath='include/linux/hid.h' line='776' column='1'/>
+ <var-decl name='input_mapped' type-id='d77ebcbf' visibility='default' filepath='include/linux/hid.h' line='777' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='input_configured' type-id='3e9b5e67' visibility='default' filepath='include/linux/hid.h' line='779' column='1'/>
+ <var-decl name='input_configured' type-id='3e9b5e67' visibility='default' filepath='include/linux/hid.h' line='780' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='feature_mapping' type-id='2064eae9' visibility='default' filepath='include/linux/hid.h' line='781' column='1'/>
+ <var-decl name='feature_mapping' type-id='2064eae9' visibility='default' filepath='include/linux/hid.h' line='782' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='suspend' type-id='a4c53922' visibility='default' filepath='include/linux/hid.h' line='785' column='1'/>
+ <var-decl name='suspend' type-id='a4c53922' visibility='default' filepath='include/linux/hid.h' line='786' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='resume' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='786' column='1'/>
+ <var-decl name='resume' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='787' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='reset_resume' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='787' column='1'/>
+ <var-decl name='reset_resume' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='788' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/hid.h' line='790' column='1'/>
+ <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/hid.h' line='791' column='1'/>
</data-member>
</class-decl>
<class-decl name='nf_ct_udp' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='29' column='1' id='21861431'>
@@ -21828,6 +21921,14 @@
</class-decl>
<pointer-type-def type-id='68f033c6' size-in-bits='64' id='2476e63c'/>
<pointer-type-def type-id='fba20e52' size-in-bits='64' id='247cd24c'/>
+ <class-decl name='blkg_rwstat' size-in-bits='1920' is-struct='yes' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='26' column='1' id='247d0323'>
+ <data-member access='public' layout-offset-in-bits='0'>
+ <var-decl name='cpu_cnt' type-id='68a92070' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='27' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='1600'>
+ <var-decl name='aux_cnt' type-id='39e531ac' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='28' column='1'/>
+ </data-member>
+ </class-decl>
<pointer-type-def type-id='df5e8716' size-in-bits='64' id='247dd85c'/>
<class-decl name='ti_sci_inta_msi_desc' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/linux/msi.h' line='93' column='1' id='248c6527'>
<data-member access='public' layout-offset-in-bits='0'>
@@ -22876,7 +22977,7 @@
<parameter type-id='98d7a132'/>
<return type-id='02ac9d9d'/>
</function-type>
- <typedef-decl name='filldir_t' type-id='78efe913' filepath='include/linux/fs.h' line='1992' column='1' id='262124ef'/>
+ <typedef-decl name='filldir_t' type-id='78efe913' filepath='include/linux/fs.h' line='1998' column='1' id='262124ef'/>
<class-decl name='snd_soc_tplg_vendor_value_elem' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/sound/asoc.h' line='213' column='1' id='26236645'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='token' type-id='2f162548' visibility='default' filepath='include/uapi/sound/asoc.h' line='214' column='1'/>
@@ -23438,7 +23539,7 @@
<array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='448' id='27cbf0c8'>
<subrange length='14' type-id='7ff19f0f' id='48882d96'/>
</array-type-def>
- <typedef-decl name='dio_submit_t' type-id='6d229cce' filepath='include/linux/fs.h' line='3267' column='1' id='27d499b2'/>
+ <typedef-decl name='dio_submit_t' type-id='6d229cce' filepath='include/linux/fs.h' line='3273' column='1' id='27d499b2'/>
<pointer-type-def type-id='af1e6651' size-in-bits='64' id='27db53a1'/>
<class-decl name='snd_soc_dapm_wcache' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/sound/soc-dapm.h' line='682' column='1' id='27dc472b'>
<data-member access='public' layout-offset-in-bits='0'>
@@ -23732,15 +23833,15 @@
<parameter type-id='95e97e5e'/>
<return type-id='48b5725f'/>
</function-type>
- <class-decl name='nl80211_wowlan_tcp_data_token' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5674' column='1' id='2868c21b'>
+ <class-decl name='nl80211_wowlan_tcp_data_token' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5699' column='1' id='2868c21b'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5675' column='1'/>
+ <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5700' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5675' column='1'/>
+ <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5700' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='token_stream' type-id='167619f6' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5676' column='1'/>
+ <var-decl name='token_stream' type-id='167619f6' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5701' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='a87c488a' size-in-bits='64' id='2869bb38'/>
@@ -24598,6 +24699,7 @@
</data-member>
</class-decl>
<pointer-type-def type-id='557c51cd' size-in-bits='64' id='29e425c9'/>
+ <qualified-type-def type-id='3713d87e' const='yes' id='29e79c3f'/>
<pointer-type-def type-id='964819d7' size-in-bits='64' id='29f0ac2f'/>
<class-decl name='icc_req' size-in-bits='384' is-struct='yes' visibility='default' filepath='drivers/interconnect/internal.h' line='22' column='1' id='29f471c5'>
<data-member access='public' layout-offset-in-bits='0'>
@@ -26589,69 +26691,69 @@
</function-type>
<pointer-type-def type-id='676b848c' size-in-bits='64' id='2f4512ea'/>
<pointer-type-def type-id='7364da7b' size-in-bits='64' id='2f59f71f'/>
- <class-decl name='file_system_type' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2507' column='1' id='2f5a60be'>
+ <class-decl name='file_system_type' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2513' column='1' id='2f5a60be'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2508' column='1'/>
+ <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2514' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='fs_flags' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='2509' column='1'/>
+ <var-decl name='fs_flags' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='2515' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='init_fs_context' type-id='57f0383a' visibility='default' filepath='include/linux/fs.h' line='2518' column='1'/>
+ <var-decl name='init_fs_context' type-id='57f0383a' visibility='default' filepath='include/linux/fs.h' line='2524' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='parameters' type-id='8d4f223b' visibility='default' filepath='include/linux/fs.h' line='2519' column='1'/>
+ <var-decl name='parameters' type-id='8d4f223b' visibility='default' filepath='include/linux/fs.h' line='2525' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='mount' type-id='d9394db1' visibility='default' filepath='include/linux/fs.h' line='2520' column='1'/>
+ <var-decl name='mount' type-id='d9394db1' visibility='default' filepath='include/linux/fs.h' line='2526' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='kill_sb' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2522' column='1'/>
+ <var-decl name='kill_sb' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2528' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs.h' line='2523' column='1'/>
+ <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs.h' line='2529' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='next' type-id='21e53d44' visibility='default' filepath='include/linux/fs.h' line='2524' column='1'/>
+ <var-decl name='next' type-id='21e53d44' visibility='default' filepath='include/linux/fs.h' line='2530' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='fs_supers' type-id='e151255a' visibility='default' filepath='include/linux/fs.h' line='2525' column='1'/>
+ <var-decl name='fs_supers' type-id='e151255a' visibility='default' filepath='include/linux/fs.h' line='2531' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='s_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2527' column='1'/>
+ <var-decl name='s_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2533' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='s_umount_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2528' column='1'/>
+ <var-decl name='s_umount_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2534' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='s_vfs_rename_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2529' column='1'/>
+ <var-decl name='s_vfs_rename_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2535' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='s_writers_key' type-id='9c02e2a6' visibility='default' filepath='include/linux/fs.h' line='2530' column='1'/>
+ <var-decl name='s_writers_key' type-id='9c02e2a6' visibility='default' filepath='include/linux/fs.h' line='2536' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='i_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2532' column='1'/>
+ <var-decl name='i_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2538' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='i_mutex_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2533' column='1'/>
+ <var-decl name='i_mutex_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2539' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='invalidate_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2534' column='1'/>
+ <var-decl name='invalidate_lock_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2540' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='i_mutex_dir_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2535' column='1'/>
+ <var-decl name='i_mutex_dir_key' type-id='47479831' visibility='default' filepath='include/linux/fs.h' line='2541' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2537' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2543' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2538' column='1'/>
+ <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2544' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2539' column='1'/>
+ <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2545' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2540' column='1'/>
+ <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2546' column='1'/>
</data-member>
</class-decl>
<class-decl name='skcipher_instance' size-in-bits='6144' is-struct='yes' visibility='default' filepath='include/crypto/internal/skcipher.h' line='20' column='1' id='2f61a822'>
@@ -27196,6 +27298,7 @@
</class-decl>
<typedef-decl name='__s32' type-id='95e97e5e' filepath='include/uapi/asm-generic/int-ll64.h' line='26' column='1' id='3158a266'/>
<pointer-type-def type-id='6ae7a739' size-in-bits='64' id='3168497d'/>
+ <pointer-type-def type-id='12878ab3' size-in-bits='64' id='316cdcd3'/>
<class-decl name='key_tag' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/key.h' line='102' column='1' id='3173bc57'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/key.h' line='103' column='1'/>
@@ -27595,6 +27698,9 @@
<parameter type-id='3837ac61'/>
<return type-id='95e97e5e'/>
</function-type>
+ <array-type-def dimensions='1' type-id='ea86de29' size-in-bits='128' id='32625dbc'>
+ <subrange length='16' type-id='7ff19f0f' id='848d0938'/>
+ </array-type-def>
<function-type size-in-bits='64' id='32672900'>
<parameter type-id='a47d3467'/>
<parameter type-id='298d0a77'/>
@@ -28005,12 +28111,12 @@
<parameter type-id='68a2d05b'/>
<return type-id='68a2d05b'/>
</function-type>
- <class-decl name='usbdrv_wrap' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1138' column='1' id='33780378'>
+ <class-decl name='usbdrv_wrap' size-in-bits='1472' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1141' column='1' id='33780378'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/usb.h' line='1139' column='1'/>
+ <var-decl name='driver' type-id='fe007c02' visibility='default' filepath='include/linux/usb.h' line='1142' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='for_devices' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1140' column='1'/>
+ <var-decl name='for_devices' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1143' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='337862e8'>
@@ -29067,6 +29173,11 @@
<array-type-def dimensions='1' type-id='55f9b227' size-in-bits='65536' id='370ec9f4'>
<subrange length='256' type-id='7ff19f0f' id='36e5b9fa'/>
</array-type-def>
+ <class-decl name='blkg_rwstat_sample' size-in-bits='320' is-struct='yes' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='31' column='1' id='3713d87e'>
+ <data-member access='public' layout-offset-in-bits='0'>
+ <var-decl name='cnt' type-id='64af1365' visibility='default' filepath='block/blk-cgroup-rwstat.h' line='32' column='1'/>
+ </data-member>
+ </class-decl>
<pointer-type-def type-id='6703ad9d' size-in-bits='64' id='37175e4d'/>
<pointer-type-def type-id='cfe09901' size-in-bits='64' id='37191bbd'/>
<function-type size-in-bits='64' id='371f2e98'>
@@ -29175,18 +29286,18 @@
<var-decl name='cache_order' type-id='f0981eeb' visibility='default' filepath='mm/slab.h' line='206' column='1'/>
</data-member>
</class-decl>
- <class-decl name='wiphy_iftype_ext_capab' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5270' column='1' id='378a6c5a'>
+ <class-decl name='wiphy_iftype_ext_capab' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5325' column='1' id='378a6c5a'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='5271' column='1'/>
+ <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='5326' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='extended_capabilities' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5272' column='1'/>
+ <var-decl name='extended_capabilities' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5327' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='extended_capabilities_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5273' column='1'/>
+ <var-decl name='extended_capabilities_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5328' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='extended_capabilities_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5274' column='1'/>
+ <var-decl name='extended_capabilities_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5329' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='378c144b'>
@@ -29214,6 +29325,17 @@
<var-decl name='offset' type-id='b469d7a7' visibility='default' filepath='include/net/flow_dissector.h' line='301' column='1'/>
</data-member>
</class-decl>
+ <class-decl name='blkg_conf_ctx' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/blk-cgroup.h' line='205' column='1' id='379ef9aa'>
+ <data-member access='public' layout-offset-in-bits='0'>
+ <var-decl name='bdev' type-id='b88dd945' visibility='default' filepath='include/linux/blk-cgroup.h' line='206' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='64'>
+ <var-decl name='blkg' type-id='1146dea3' visibility='default' filepath='include/linux/blk-cgroup.h' line='207' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='128'>
+ <var-decl name='body' type-id='26a90f95' visibility='default' filepath='include/linux/blk-cgroup.h' line='208' column='1'/>
+ </data-member>
+ </class-decl>
<class-decl name='cgroup_file' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/cgroup-defs.h' line='128' column='1' id='37a4ee40'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='kn' type-id='150efd3f' visibility='default' filepath='include/linux/cgroup-defs.h' line='130' column='1'/>
@@ -29654,12 +29776,12 @@
<pointer-type-def type-id='c8c25625' size-in-bits='64' id='390f38a5'/>
<pointer-type-def type-id='754a5cbf' size-in-bits='64' id='390fbe8f'/>
<pointer-type-def type-id='d35840cd' size-in-bits='64' id='391871d1'/>
- <class-decl name='cfg80211_sched_scan_plan' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2635' column='1' id='391881a9'>
+ <class-decl name='cfg80211_sched_scan_plan' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2667' column='1' id='391881a9'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2636' column='1'/>
+ <var-decl name='interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2668' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='iterations' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2637' column='1'/>
+ <var-decl name='iterations' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2669' column='1'/>
</data-member>
</class-decl>
<class-decl name='usb_device_id' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/mod_devicetable.h' line='127' column='1' id='391a9024'>
@@ -30269,6 +30391,9 @@
</data-member>
</class-decl>
<pointer-type-def type-id='bed27c38' size-in-bits='64' id='39e52da2'/>
+ <array-type-def dimensions='1' type-id='28ee064c' size-in-bits='320' id='39e531ac'>
+ <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+ </array-type-def>
<array-type-def dimensions='1' type-id='0f8f80b0' size-in-bits='384' id='39e8b9c8'>
<subrange length='6' type-id='7ff19f0f' id='52fa524b'/>
</array-type-def>
@@ -31605,156 +31730,156 @@
</class-decl>
<pointer-type-def type-id='46eaf6b3' size-in-bits='64' id='3ce232db'/>
<pointer-type-def type-id='c21690c0' size-in-bits='64' id='3ce3447a'/>
- <class-decl name='wireless_dev' size-in-bits='19072' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='6031' column='1' id='3ce3a3e9'>
+ <class-decl name='wireless_dev' size-in-bits='19072' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='6086' column='1' id='3ce3a3e9'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='wiphy' type-id='666fb412' visibility='default' filepath='include/net/cfg80211.h' line='6032' column='1'/>
+ <var-decl name='wiphy' type-id='666fb412' visibility='default' filepath='include/net/cfg80211.h' line='6087' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='6033' column='1'/>
+ <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='6088' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6036' column='1'/>
+ <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6091' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg80211.h' line='6037' column='1'/>
+ <var-decl name='netdev' type-id='68a2d05b' visibility='default' filepath='include/net/cfg80211.h' line='6092' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='identifier' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6039' column='1'/>
+ <var-decl name='identifier' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6094' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='mgmt_registrations' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6041' column='1'/>
+ <var-decl name='mgmt_registrations' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6096' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='mgmt_registrations_need_update' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6042' column='1'/>
+ <var-decl name='mgmt_registrations_need_update' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6097' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='mtx' type-id='925167dc' visibility='default' filepath='include/net/cfg80211.h' line='6044' column='1'/>
+ <var-decl name='mtx' type-id='925167dc' visibility='default' filepath='include/net/cfg80211.h' line='6099' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='use_4addr' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6046' column='1'/>
+ <var-decl name='use_4addr' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='968'>
- <var-decl name='is_running' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6046' column='1'/>
+ <var-decl name='is_running' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='976'>
- <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6046' column='1'/>
+ <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='984'>
- <var-decl name='registering' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6046' column='1'/>
+ <var-decl name='registering' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='992'>
- <var-decl name='address' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6048' column='1'/>
+ <var-decl name='address' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6103' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='conn' type-id='6dbc8e18' visibility='default' filepath='include/net/cfg80211.h' line='6051' column='1'/>
+ <var-decl name='conn' type-id='6dbc8e18' visibility='default' filepath='include/net/cfg80211.h' line='6106' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='connect_keys' type-id='561a36db' visibility='default' filepath='include/net/cfg80211.h' line='6052' column='1'/>
+ <var-decl name='connect_keys' type-id='561a36db' visibility='default' filepath='include/net/cfg80211.h' line='6107' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='conn_bss_type' type-id='cb952348' visibility='default' filepath='include/net/cfg80211.h' line='6053' column='1'/>
+ <var-decl name='conn_bss_type' type-id='cb952348' visibility='default' filepath='include/net/cfg80211.h' line='6108' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1248'>
- <var-decl name='conn_owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6054' column='1'/>
+ <var-decl name='conn_owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6109' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='disconnect_wk' type-id='ef9025d0' visibility='default' filepath='include/net/cfg80211.h' line='6056' column='1'/>
+ <var-decl name='disconnect_wk' type-id='ef9025d0' visibility='default' filepath='include/net/cfg80211.h' line='6111' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
- <var-decl name='disconnect_bssid' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6057' column='1'/>
+ <var-decl name='disconnect_bssid' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6112' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1728'>
- <var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6059' column='1'/>
+ <var-decl name='event_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6114' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1856'>
- <var-decl name='event_lock' type-id='fb4018a0' visibility='default' filepath='include/net/cfg80211.h' line='6060' column='1'/>
+ <var-decl name='event_lock' type-id='fb4018a0' visibility='default' filepath='include/net/cfg80211.h' line='6115' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1888'>
- <var-decl name='connected' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6062' column='1'/>
+ <var-decl name='connected' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6117' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1896'>
- <var-decl name='ps' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6064' column='1'/>
+ <var-decl name='ps' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6119' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1920'>
- <var-decl name='ps_timeout' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6065' column='1'/>
+ <var-decl name='ps_timeout' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6120' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1952'>
- <var-decl name='ap_unexpected_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6067' column='1'/>
+ <var-decl name='ap_unexpected_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6122' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1984'>
- <var-decl name='owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6069' column='1'/>
+ <var-decl name='owner_nlportid' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='6124' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2016'>
- <var-decl name='nl_owner_dead' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6070' column='1'/>
+ <var-decl name='nl_owner_dead' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6125' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2024'>
- <var-decl name='cac_started' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6073' column='1'/>
+ <var-decl name='cac_started' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='6128' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2048'>
- <var-decl name='cac_start_time' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='6074' column='1'/>
+ <var-decl name='cac_start_time' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='6129' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2112'>
- <var-decl name='cac_time_ms' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='6075' column='1'/>
+ <var-decl name='cac_time_ms' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='6130' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2176'>
- <var-decl name='cqm_config' type-id='ee527710' visibility='default' filepath='include/net/cfg80211.h' line='6093' column='1'/>
+ <var-decl name='cqm_config' type-id='ee527710' visibility='default' filepath='include/net/cfg80211.h' line='6148' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2240'>
- <var-decl name='pmsr_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6095' column='1'/>
+ <var-decl name='pmsr_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='6150' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2368'>
- <var-decl name='pmsr_lock' type-id='fb4018a0' visibility='default' filepath='include/net/cfg80211.h' line='6096' column='1'/>
+ <var-decl name='pmsr_lock' type-id='fb4018a0' visibility='default' filepath='include/net/cfg80211.h' line='6151' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2432'>
- <var-decl name='pmsr_free_wk' type-id='ef9025d0' visibility='default' filepath='include/net/cfg80211.h' line='6097' column='1'/>
+ <var-decl name='pmsr_free_wk' type-id='ef9025d0' visibility='default' filepath='include/net/cfg80211.h' line='6152' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2816'>
- <var-decl name='unprot_beacon_reported' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='6099' column='1'/>
+ <var-decl name='unprot_beacon_reported' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='6154' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2880'>
- <var-decl name='u' type-id='ac5ab688' visibility='default' filepath='include/net/cfg80211.h' line='6129' column='1'/>
+ <var-decl name='u' type-id='ac5ab688' visibility='default' filepath='include/net/cfg80211.h' line='6184' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='4800'>
- <var-decl name='links' type-id='4cb7c55c' visibility='default' filepath='include/net/cfg80211.h' line='6142' column='1'/>
+ <var-decl name='links' type-id='4cb7c55c' visibility='default' filepath='include/net/cfg80211.h' line='6197' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18240'>
- <var-decl name='valid_links' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='6143' column='1'/>
+ <var-decl name='valid_links' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='6198' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18304'>
- <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6145' column='1'/>
+ <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6200' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18368'>
- <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6146' column='1'/>
+ <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6201' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18432'>
- <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6147' column='1'/>
+ <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6202' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18496'>
- <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6148' column='1'/>
+ <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6203' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18560'>
- <var-decl name='android_backport_reserved5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6149' column='1'/>
+ <var-decl name='android_backport_reserved5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6204' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18624'>
- <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6151' column='1'/>
+ <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6206' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18688'>
- <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6152' column='1'/>
+ <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6207' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18752'>
- <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6153' column='1'/>
+ <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6208' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18816'>
- <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6154' column='1'/>
+ <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6209' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18880'>
- <var-decl name='android_vendor_data5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6155' column='1'/>
+ <var-decl name='android_vendor_data5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6210' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='18944'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6157' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6212' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='19008'>
- <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6158' column='1'/>
+ <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='6213' column='1'/>
</data-member>
</class-decl>
<class-decl name='coupling_desc' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/regulator/driver.h' line='591' column='1' id='3ce445fe'>
@@ -32324,7 +32449,7 @@
<var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pm.h' line='303' column='1'/>
</data-member>
</class-decl>
- <enum-decl name='nl80211_band' filepath='include/uapi/linux/nl80211.h' line='5270' column='1' id='3eaa0294'>
+ <enum-decl name='nl80211_band' filepath='include/uapi/linux/nl80211.h' line='5295' column='1' id='3eaa0294'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='NL80211_BAND_2GHZ' value='0'/>
<enumerator name='NL80211_BAND_5GHZ' value='1'/>
@@ -32473,69 +32598,69 @@
<subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
</array-type-def>
<pointer-type-def type-id='8b28624a' size-in-bits='64' id='3ed0c5ec'/>
- <class-decl name='hid_field' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='458' column='1' id='3ede3949'>
+ <class-decl name='hid_field' size-in-bits='896' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='459' column='1' id='3ede3949'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='physical' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='459' column='1'/>
+ <var-decl name='physical' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='460' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='logical' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='460' column='1'/>
+ <var-decl name='logical' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='461' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='461' column='1'/>
+ <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='462' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='usage' type-id='d586c6cc' visibility='default' filepath='include/linux/hid.h' line='462' column='1'/>
+ <var-decl name='usage' type-id='d586c6cc' visibility='default' filepath='include/linux/hid.h' line='463' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='maxusage' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='463' column='1'/>
+ <var-decl name='maxusage' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='464' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='464' column='1'/>
+ <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='465' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='report_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='465' column='1'/>
+ <var-decl name='report_offset' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='466' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='288'>
- <var-decl name='report_size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='466' column='1'/>
+ <var-decl name='report_size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='467' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='report_count' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='467' column='1'/>
+ <var-decl name='report_count' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='468' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='report_type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='468' column='1'/>
+ <var-decl name='report_type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='469' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='value' type-id='a5f29c61' visibility='default' filepath='include/linux/hid.h' line='469' column='1'/>
+ <var-decl name='value' type-id='a5f29c61' visibility='default' filepath='include/linux/hid.h' line='470' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='logical_minimum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='470' column='1'/>
+ <var-decl name='logical_minimum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='471' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='480'>
- <var-decl name='logical_maximum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='471' column='1'/>
+ <var-decl name='logical_maximum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='472' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='physical_minimum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='472' column='1'/>
+ <var-decl name='physical_minimum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='473' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='544'>
- <var-decl name='physical_maximum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='473' column='1'/>
+ <var-decl name='physical_maximum' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='474' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='unit_exponent' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='474' column='1'/>
+ <var-decl name='unit_exponent' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='475' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='608'>
- <var-decl name='unit' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='475' column='1'/>
+ <var-decl name='unit' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='476' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='report' type-id='5b4284d1' visibility='default' filepath='include/linux/hid.h' line='476' column='1'/>
+ <var-decl name='report' type-id='5b4284d1' visibility='default' filepath='include/linux/hid.h' line='477' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='477' column='1'/>
+ <var-decl name='index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='478' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='hidinput' type-id='b548c585' visibility='default' filepath='include/linux/hid.h' line='479' column='1'/>
+ <var-decl name='hidinput' type-id='b548c585' visibility='default' filepath='include/linux/hid.h' line='480' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='dpad' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='480' column='1'/>
+ <var-decl name='dpad' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='481' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='47308153' size-in-bits='64' id='3eef3bc7'/>
@@ -32592,18 +32717,18 @@
</function-type>
<pointer-type-def type-id='bf3ef905' size-in-bits='64' id='3f2244fd'/>
<pointer-type-def type-id='c3b52303' size-in-bits='64' id='3f26598b'/>
- <class-decl name='irqtime' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='2862' column='1' id='3f278a28'>
+ <class-decl name='irqtime' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='2836' column='1' id='3f278a28'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='total' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2863' column='1'/>
+ <var-decl name='total' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2837' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='tick_delta' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2864' column='1'/>
+ <var-decl name='tick_delta' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2838' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='irq_start_time' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2865' column='1'/>
+ <var-decl name='irq_start_time' type-id='91ce1af9' visibility='default' filepath='kernel/sched/sched.h' line='2839' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='sync' type-id='e4d85780' visibility='default' filepath='kernel/sched/sched.h' line='2866' column='1'/>
+ <var-decl name='sync' type-id='e4d85780' visibility='default' filepath='kernel/sched/sched.h' line='2840' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='849373e7' size-in-bits='64' id='3f29b13b'/>
@@ -33406,7 +33531,7 @@
</data-member>
</class-decl>
<pointer-type-def type-id='aaa8d90f' size-in-bits='64' id='40825cfb'/>
- <typedef-decl name='usb_complete_t' type-id='79dbccfb' filepath='include/linux/usb.h' line='1404' column='1' id='4086973b'/>
+ <typedef-decl name='usb_complete_t' type-id='79dbccfb' filepath='include/linux/usb.h' line='1407' column='1' id='4086973b'/>
<function-type size-in-bits='64' id='40877b8a'>
<parameter type-id='abd62a96'/>
<return type-id='95e97e5e'/>
@@ -35308,6 +35433,7 @@
</data-member>
</class-decl>
<pointer-type-def type-id='855e3679' size-in-bits='64' id='464f84a9'/>
+ <pointer-type-def type-id='80b5c3cd' size-in-bits='64' id='46530b39'/>
<class-decl name='wake_irq' size-in-bits='192' is-struct='yes' visibility='default' filepath='drivers/base/power/power.h' line='31' column='1' id='4657336c'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='dev' type-id='fa0b179b' visibility='default' filepath='drivers/base/power/power.h' line='32' column='1'/>
@@ -35821,66 +35947,66 @@
<var-decl name='incr' type-id='91ce1af9' visibility='default' filepath='include/linux/sched/signal.h' line='41' column='1'/>
</data-member>
</class-decl>
- <class-decl name='gs_port' size-in-bits='6016' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='98' column='1' id='4788f063'>
+ <class-decl name='gs_port' size-in-bits='6016' is-struct='yes' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='101' column='1' id='4788f063'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='port' type-id='7e1e521a' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='99' column='1'/>
+ <var-decl name='port' type-id='7e1e521a' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='102' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3392'>
- <var-decl name='port_lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='100' column='1'/>
+ <var-decl name='port_lock' type-id='fb4018a0' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='103' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3456'>
- <var-decl name='port_usb' type-id='3921c1a0' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='102' column='1'/>
+ <var-decl name='port_usb' type-id='3921c1a0' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='105' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3520'>
- <var-decl name='port_num' type-id='f9b06939' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='107' column='1'/>
+ <var-decl name='port_num' type-id='f9b06939' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='110' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3584'>
- <var-decl name='read_pool' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='109' column='1'/>
+ <var-decl name='read_pool' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='112' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3712'>
- <var-decl name='read_started' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='110' column='1'/>
+ <var-decl name='read_started' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='113' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3744'>
- <var-decl name='read_allocated' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='111' column='1'/>
+ <var-decl name='read_allocated' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='114' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3776'>
- <var-decl name='read_queue' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='112' column='1'/>
+ <var-decl name='read_queue' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='115' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3904'>
- <var-decl name='n_read' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='113' column='1'/>
+ <var-decl name='n_read' type-id='f0981eeb' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='116' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3968'>
- <var-decl name='push' type-id='5ad6e0ef' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='114' column='1'/>
+ <var-decl name='push' type-id='5ad6e0ef' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='117' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5056'>
- <var-decl name='write_pool' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='116' column='1'/>
+ <var-decl name='write_pool' type-id='72f469ec' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='119' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5184'>
- <var-decl name='write_started' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='117' column='1'/>
+ <var-decl name='write_started' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='120' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5216'>
- <var-decl name='write_allocated' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='118' column='1'/>
+ <var-decl name='write_allocated' type-id='95e97e5e' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='121' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5248'>
- <var-decl name='port_write_buf' type-id='7664edcc' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='119' column='1'/>
+ <var-decl name='port_write_buf' type-id='7664edcc' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='122' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5440'>
- <var-decl name='drain_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='120' column='1'/>
+ <var-decl name='drain_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='123' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5632'>
- <var-decl name='write_busy' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='121' column='1'/>
+ <var-decl name='write_busy' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='124' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5696'>
- <var-decl name='close_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='122' column='1'/>
+ <var-decl name='close_wait' type-id='b5ab048f' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='125' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5888'>
- <var-decl name='suspended' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='123' column='1'/>
+ <var-decl name='suspended' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='126' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5896'>
- <var-decl name='start_delayed' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='124' column='1'/>
+ <var-decl name='start_delayed' type-id='b50a4934' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='127' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5904'>
- <var-decl name='port_line_coding' type-id='d4a32434' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='127' column='1'/>
+ <var-decl name='port_line_coding' type-id='d4a32434' visibility='default' filepath='drivers/usb/gadget/function/u_serial.c' line='130' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='5d26fb4d' size-in-bits='64' id='478ed79d'/>
@@ -36251,12 +36377,12 @@
<return type-id='95e97e5e'/>
</function-type>
<pointer-type-def type-id='e4960e7f' size-in-bits='64' id='48d231fb'/>
- <class-decl name='wiphy_backport' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5362' column='1' id='48d5d0d9'>
+ <class-decl name='wiphy_backport' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5417' column='1' id='48d5d0d9'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='iftype_ext_capab2' type-id='5c74fd13' visibility='default' filepath='include/net/cfg80211.h' line='5363' column='1'/>
+ <var-decl name='iftype_ext_capab2' type-id='5c74fd13' visibility='default' filepath='include/net/cfg80211.h' line='5418' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='num_iftype_ext_capab2' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5364' column='1'/>
+ <var-decl name='num_iftype_ext_capab2' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5419' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='d8ad531a' size-in-bits='64' id='48d9f490'/>
@@ -38896,9 +39022,9 @@
<var-decl name='delay_us' type-id='f0981eeb' visibility='default' filepath='include/linux/regmap.h' line='76' column='1'/>
</data-member>
</class-decl>
- <class-decl name='hid_report_id' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='701' column='1' id='4fd7026f'>
+ <class-decl name='hid_report_id' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='702' column='1' id='4fd7026f'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='report_type' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='702' column='1'/>
+ <var-decl name='report_type' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='703' column='1'/>
</data-member>
</class-decl>
<class-decl name='pd_pps_data' size-in-bits='288' is-struct='yes' visibility='default' filepath='drivers/usb/typec/tcpm/tcpm.c' line='284' column='1' id='4ff0f7bc'>
@@ -41439,12 +41565,12 @@
<enumerator name='VB2_BUF_STATE_ERROR' value='6'/>
</enum-decl>
<pointer-type-def type-id='1e0f9dee' size-in-bits='64' id='5509d4f4'/>
- <class-decl name='ipv6_opt_hdr' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='62' column='1' id='5510bbdb'>
+ <class-decl name='ipv6_opt_hdr' size-in-bits='16' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='63' column='1' id='5510bbdb'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='nexthdr' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='63' column='1'/>
+ <var-decl name='nexthdr' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='64' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8'>
- <var-decl name='hdrlen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='64' column='1'/>
+ <var-decl name='hdrlen' type-id='8f048e17' visibility='default' filepath='include/uapi/linux/ipv6.h' line='65' column='1'/>
</data-member>
</class-decl>
<enum-decl name='typec_cc_polarity' filepath='include/linux/usb/tcpm.h' line='26' column='1' id='551eebc9'>
@@ -41535,21 +41661,21 @@
<array-type-def dimensions='1' type-id='cf29c9b3' size-in-bits='infinite' id='55685a92'>
<subrange length='infinite' type-id='7ff19f0f' id='031f2035'/>
</array-type-def>
- <class-decl name='wiphy_wowlan_tcp_support' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5131' column='1' id='557bca33'>
+ <class-decl name='wiphy_wowlan_tcp_support' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5186' column='1' id='557bca33'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='tok' type-id='6a8cbf59' visibility='default' filepath='include/net/cfg80211.h' line='5132' column='1'/>
+ <var-decl name='tok' type-id='6a8cbf59' visibility='default' filepath='include/net/cfg80211.h' line='5187' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='data_payload_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5133' column='1'/>
+ <var-decl name='data_payload_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5188' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='data_interval_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5134' column='1'/>
+ <var-decl name='data_interval_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5189' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='wake_payload_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5135' column='1'/>
+ <var-decl name='wake_payload_max' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5190' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='seq' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5136' column='1'/>
+ <var-decl name='seq' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5191' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='557c51cd'>
@@ -42103,18 +42229,18 @@
<return type-id='95e97e5e'/>
</function-type>
<pointer-type-def type-id='8800ed53' size-in-bits='64' id='56ccc407'/>
- <class-decl name='trace_option_dentry' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='499' column='1' id='56d268db'>
+ <class-decl name='trace_option_dentry' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='498' column='1' id='56d268db'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='opt' type-id='a0260edc' visibility='default' filepath='kernel/trace/trace.h' line='500' column='1'/>
+ <var-decl name='opt' type-id='a0260edc' visibility='default' filepath='kernel/trace/trace.h' line='499' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='flags' type-id='aef13606' visibility='default' filepath='kernel/trace/trace.h' line='501' column='1'/>
+ <var-decl name='flags' type-id='aef13606' visibility='default' filepath='kernel/trace/trace.h' line='500' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='tr' type-id='898c1076' visibility='default' filepath='kernel/trace/trace.h' line='502' column='1'/>
+ <var-decl name='tr' type-id='898c1076' visibility='default' filepath='kernel/trace/trace.h' line='501' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='entry' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='503' column='1'/>
+ <var-decl name='entry' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='502' column='1'/>
</data-member>
</class-decl>
<enum-decl name='ufs_ref_clk_freq' filepath='drivers/scsi/ufs/ufs.h' line='406' column='1' id='56d5992c'>
@@ -43579,7 +43705,7 @@
<parameter type-id='4616a179'/>
<return type-id='95e97e5e'/>
</function-type>
- <enum-decl name='nl80211_dfs_regions' filepath='include/uapi/linux/nl80211.h' line='4440' column='1' id='5a85c988'>
+ <enum-decl name='nl80211_dfs_regions' filepath='include/uapi/linux/nl80211.h' line='4465' column='1' id='5a85c988'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='NL80211_DFS_UNSET' value='0'/>
<enumerator name='NL80211_DFS_FCC' value='1'/>
@@ -44341,27 +44467,27 @@
</function-type>
<pointer-type-def type-id='70c545cd' size-in-bits='64' id='5bb9c75d'/>
<typedef-decl name='uLong' type-id='7359adad' filepath='include/linux/zconf.h' line='54' column='1' id='5bbcce85'/>
- <class-decl name='wiphy_wowlan_support' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5154' column='1' id='5bbd300b'>
+ <class-decl name='wiphy_wowlan_support' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5209' column='1' id='5bbd300b'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5155' column='1'/>
+ <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5210' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5156' column='1'/>
+ <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5211' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='pattern_max_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5157' column='1'/>
+ <var-decl name='pattern_max_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5212' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='pattern_min_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5158' column='1'/>
+ <var-decl name='pattern_min_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5213' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='max_pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5159' column='1'/>
+ <var-decl name='max_pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5214' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='max_nd_match_sets' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5160' column='1'/>
+ <var-decl name='max_nd_match_sets' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5215' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='tcp' type-id='b3ebc0a8' visibility='default' filepath='include/net/cfg80211.h' line='5161' column='1'/>
+ <var-decl name='tcp' type-id='b3ebc0a8' visibility='default' filepath='include/net/cfg80211.h' line='5216' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='5bbf1052'>
@@ -44553,7 +44679,26 @@
<var-decl name='reg_rules' type-id='9195bab1' visibility='default' filepath='include/net/regulatory.h' line='231' column='1'/>
</data-member>
</class-decl>
- <class-decl name='input_dev_poller' is-struct='yes' visibility='default' is-declaration-only='yes' id='5c32afaa'/>
+ <class-decl name='input_dev_poller' size-in-bits='1344' is-struct='yes' visibility='default' filepath='drivers/input/input-poller.c' line='15' column='1' id='5c32afaa'>
+ <data-member access='public' layout-offset-in-bits='0'>
+ <var-decl name='poll' type-id='b44880ea' visibility='default' filepath='drivers/input/input-poller.c' line='16' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='64'>
+ <var-decl name='poll_interval' type-id='f0981eeb' visibility='default' filepath='drivers/input/input-poller.c' line='18' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='96'>
+ <var-decl name='poll_interval_max' type-id='f0981eeb' visibility='default' filepath='drivers/input/input-poller.c' line='19' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='128'>
+ <var-decl name='poll_interval_min' type-id='f0981eeb' visibility='default' filepath='drivers/input/input-poller.c' line='20' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='192'>
+ <var-decl name='input' type-id='74b427eb' visibility='default' filepath='drivers/input/input-poller.c' line='22' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='256'>
+ <var-decl name='work' type-id='5ad6e0ef' visibility='default' filepath='drivers/input/input-poller.c' line='23' column='1'/>
+ </data-member>
+ </class-decl>
<pointer-type-def type-id='ae670bfa' size-in-bits='64' id='5c379870'/>
<function-type size-in-bits='64' id='5c3855b6'>
<parameter type-id='ca9354d1'/>
@@ -45256,12 +45401,12 @@
<pointer-type-def type-id='9c313c2d' size-in-bits='64' id='5d6479ae'/>
<pointer-type-def type-id='aa647859' size-in-bits='64' id='5d77c671'/>
<pointer-type-def type-id='09ffba8a' size-in-bits='64' id='5d92c9e0'/>
- <class-decl name='cfg80211_bss_select_adjust' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2646' column='1' id='5da08e25'>
+ <class-decl name='cfg80211_bss_select_adjust' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2678' column='1' id='5da08e25'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='band' type-id='3eaa0294' visibility='default' filepath='include/net/cfg80211.h' line='2647' column='1'/>
+ <var-decl name='band' type-id='3eaa0294' visibility='default' filepath='include/net/cfg80211.h' line='2679' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='delta' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='2648' column='1'/>
+ <var-decl name='delta' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='2680' column='1'/>
</data-member>
</class-decl>
<class-decl name='watchdog_info' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/uapi/linux/watchdog.h' line='18' column='1' id='5da1665b'>
@@ -45705,6 +45850,20 @@
<parameter type-id='95e97e5e'/>
<return type-id='2594b00f'/>
</function-type>
+ <class-decl name='crypto_authenc_keys' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/crypto/authenc.h' line='21' column='1' id='5ea6264e'>
+ <data-member access='public' layout-offset-in-bits='0'>
+ <var-decl name='authkey' type-id='bbaf3419' visibility='default' filepath='include/crypto/authenc.h' line='22' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='64'>
+ <var-decl name='enckey' type-id='bbaf3419' visibility='default' filepath='include/crypto/authenc.h' line='23' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='128'>
+ <var-decl name='authkeylen' type-id='f0981eeb' visibility='default' filepath='include/crypto/authenc.h' line='25' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='160'>
+ <var-decl name='enckeylen' type-id='f0981eeb' visibility='default' filepath='include/crypto/authenc.h' line='26' column='1'/>
+ </data-member>
+ </class-decl>
<pointer-type-def type-id='42772acc' size-in-bits='64' id='5eb6827a'/>
<class-decl name='sd_ssr' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/mmc/card.h' line='148' column='1' id='5eba9d65'>
<data-member access='public' layout-offset-in-bits='0'>
@@ -46026,87 +46185,87 @@
<enumerator name='CA_EVENT_ECN_IS_CE' value='5'/>
</enum-decl>
<pointer-type-def type-id='ebcc73dc' size-in-bits='64' id='5f5506f6'/>
- <class-decl name='inode_operations' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2096' column='1' id='5f5aa1ff'>
+ <class-decl name='inode_operations' size-in-bits='2048' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2102' column='1' id='5f5aa1ff'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='lookup' type-id='02f90a61' visibility='default' filepath='include/linux/fs.h' line='2097' column='1'/>
+ <var-decl name='lookup' type-id='02f90a61' visibility='default' filepath='include/linux/fs.h' line='2103' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='get_link' type-id='76ae8e1d' visibility='default' filepath='include/linux/fs.h' line='2098' column='1'/>
+ <var-decl name='get_link' type-id='76ae8e1d' visibility='default' filepath='include/linux/fs.h' line='2104' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='permission' type-id='a210f03c' visibility='default' filepath='include/linux/fs.h' line='2099' column='1'/>
+ <var-decl name='permission' type-id='a210f03c' visibility='default' filepath='include/linux/fs.h' line='2105' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='get_acl' type-id='4f8933db' visibility='default' filepath='include/linux/fs.h' line='2100' column='1'/>
+ <var-decl name='get_acl' type-id='4f8933db' visibility='default' filepath='include/linux/fs.h' line='2106' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='readlink' type-id='a57bd028' visibility='default' filepath='include/linux/fs.h' line='2102' column='1'/>
+ <var-decl name='readlink' type-id='a57bd028' visibility='default' filepath='include/linux/fs.h' line='2108' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='create' type-id='873d6532' visibility='default' filepath='include/linux/fs.h' line='2104' column='1'/>
+ <var-decl name='create' type-id='873d6532' visibility='default' filepath='include/linux/fs.h' line='2110' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='link' type-id='4b872e00' visibility='default' filepath='include/linux/fs.h' line='2106' column='1'/>
+ <var-decl name='link' type-id='4b872e00' visibility='default' filepath='include/linux/fs.h' line='2112' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='unlink' type-id='7f5be7f6' visibility='default' filepath='include/linux/fs.h' line='2107' column='1'/>
+ <var-decl name='unlink' type-id='7f5be7f6' visibility='default' filepath='include/linux/fs.h' line='2113' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='symlink' type-id='a749fdca' visibility='default' filepath='include/linux/fs.h' line='2108' column='1'/>
+ <var-decl name='symlink' type-id='a749fdca' visibility='default' filepath='include/linux/fs.h' line='2114' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='mkdir' type-id='e068a947' visibility='default' filepath='include/linux/fs.h' line='2110' column='1'/>
+ <var-decl name='mkdir' type-id='e068a947' visibility='default' filepath='include/linux/fs.h' line='2116' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='rmdir' type-id='7f5be7f6' visibility='default' filepath='include/linux/fs.h' line='2112' column='1'/>
+ <var-decl name='rmdir' type-id='7f5be7f6' visibility='default' filepath='include/linux/fs.h' line='2118' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='mknod' type-id='0496a3e0' visibility='default' filepath='include/linux/fs.h' line='2113' column='1'/>
+ <var-decl name='mknod' type-id='0496a3e0' visibility='default' filepath='include/linux/fs.h' line='2119' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='rename' type-id='25a3fd6e' visibility='default' filepath='include/linux/fs.h' line='2115' column='1'/>
+ <var-decl name='rename' type-id='25a3fd6e' visibility='default' filepath='include/linux/fs.h' line='2121' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='setattr' type-id='bbc2dc04' visibility='default' filepath='include/linux/fs.h' line='2117' column='1'/>
+ <var-decl name='setattr' type-id='bbc2dc04' visibility='default' filepath='include/linux/fs.h' line='2123' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='getattr' type-id='d6a129cc' visibility='default' filepath='include/linux/fs.h' line='2119' column='1'/>
+ <var-decl name='getattr' type-id='d6a129cc' visibility='default' filepath='include/linux/fs.h' line='2125' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='listxattr' type-id='3494e4bb' visibility='default' filepath='include/linux/fs.h' line='2121' column='1'/>
+ <var-decl name='listxattr' type-id='3494e4bb' visibility='default' filepath='include/linux/fs.h' line='2127' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='fiemap' type-id='0508acce' visibility='default' filepath='include/linux/fs.h' line='2122' column='1'/>
+ <var-decl name='fiemap' type-id='0508acce' visibility='default' filepath='include/linux/fs.h' line='2128' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='update_time' type-id='64ecf6a5' visibility='default' filepath='include/linux/fs.h' line='2124' column='1'/>
+ <var-decl name='update_time' type-id='64ecf6a5' visibility='default' filepath='include/linux/fs.h' line='2130' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='atomic_open' type-id='d3807eb0' visibility='default' filepath='include/linux/fs.h' line='2125' column='1'/>
+ <var-decl name='atomic_open' type-id='d3807eb0' visibility='default' filepath='include/linux/fs.h' line='2131' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='tmpfile' type-id='e068a947' visibility='default' filepath='include/linux/fs.h' line='2128' column='1'/>
+ <var-decl name='tmpfile' type-id='e068a947' visibility='default' filepath='include/linux/fs.h' line='2134' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='set_acl' type-id='920ffb2e' visibility='default' filepath='include/linux/fs.h' line='2130' column='1'/>
+ <var-decl name='set_acl' type-id='920ffb2e' visibility='default' filepath='include/linux/fs.h' line='2136' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='fileattr_set' type-id='3511de75' visibility='default' filepath='include/linux/fs.h' line='2132' column='1'/>
+ <var-decl name='fileattr_set' type-id='3511de75' visibility='default' filepath='include/linux/fs.h' line='2138' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='fileattr_get' type-id='4d01b8d2' visibility='default' filepath='include/linux/fs.h' line='2134' column='1'/>
+ <var-decl name='fileattr_get' type-id='4d01b8d2' visibility='default' filepath='include/linux/fs.h' line='2140' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2136' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2142' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2137' column='1'/>
+ <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2143' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
- <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2138' column='1'/>
+ <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2144' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
- <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2139' column='1'/>
+ <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2145' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='5f5b9bdb'>
@@ -46415,12 +46574,12 @@
<subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
</array-type-def>
<pointer-type-def type-id='e5f6c4d2' size-in-bits='64' id='5fe73d20'/>
- <class-decl name='event_filter' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1288' column='1' id='5ff1273a'>
+ <class-decl name='event_filter' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1286' column='1' id='5ff1273a'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='prog' type-id='efd0fdec' visibility='default' filepath='kernel/trace/trace.h' line='1289' column='1'/>
+ <var-decl name='prog' type-id='efd0fdec' visibility='default' filepath='kernel/trace/trace.h' line='1287' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='filter_string' type-id='26a90f95' visibility='default' filepath='kernel/trace/trace.h' line='1290' column='1'/>
+ <var-decl name='filter_string' type-id='26a90f95' visibility='default' filepath='kernel/trace/trace.h' line='1288' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='458c097a' size-in-bits='64' id='5ffcd66c'/>
@@ -46810,27 +46969,27 @@
</class-decl>
<typedef-decl name='regmap_hw_gather_write' type-id='acda35bb' filepath='include/linux/regmap.h' line='467' column='1' id='60be0faa'/>
<pointer-type-def type-id='607834f2' size-in-bits='64' id='60c9df2c'/>
- <class-decl name='hid_input' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='531' column='1' id='60cc85f5'>
+ <class-decl name='hid_input' size-in-bits='576' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='532' column='1' id='60cc85f5'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='532' column='1'/>
+ <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='533' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='report' type-id='5b4284d1' visibility='default' filepath='include/linux/hid.h' line='533' column='1'/>
+ <var-decl name='report' type-id='5b4284d1' visibility='default' filepath='include/linux/hid.h' line='534' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='input' type-id='74b427eb' visibility='default' filepath='include/linux/hid.h' line='534' column='1'/>
+ <var-decl name='input' type-id='74b427eb' visibility='default' filepath='include/linux/hid.h' line='535' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/hid.h' line='535' column='1'/>
+ <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/hid.h' line='536' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='536' column='1'/>
+ <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='537' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='reports' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='537' column='1'/>
+ <var-decl name='reports' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='538' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='538' column='1'/>
+ <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='539' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='60d50d6a'>
@@ -48086,7 +48245,7 @@
<var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='drivers/mmc/host/sdhci.h' line='679' column='1'/>
</data-member>
</class-decl>
- <class-decl name='gpio_desc' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/gpio/gpiolib.h' line='133' column='1' id='63b74212'>
+ <class-decl name='gpio_desc' size-in-bits='320' is-struct='yes' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='133' column='1' id='63b74212'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='gdev' type-id='fb7dc22d' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='134' column='1'/>
</data-member>
@@ -48179,21 +48338,21 @@
<return type-id='95e97e5e'/>
</function-type>
<pointer-type-def type-id='e29a2892' size-in-bits='64' id='63faaa44'/>
- <class-decl name='filename' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2715' column='1' id='63fc6210'>
+ <class-decl name='filename' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2721' column='1' id='63fc6210'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2716' column='1'/>
+ <var-decl name='name' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2722' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='uptr' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2717' column='1'/>
+ <var-decl name='uptr' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='2723' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='refcnt' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='2718' column='1'/>
+ <var-decl name='refcnt' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='2724' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='aname' type-id='5acb442f' visibility='default' filepath='include/linux/fs.h' line='2719' column='1'/>
+ <var-decl name='aname' type-id='5acb442f' visibility='default' filepath='include/linux/fs.h' line='2725' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='iname' type-id='0904d1cc' visibility='default' filepath='include/linux/fs.h' line='2720' column='1'/>
+ <var-decl name='iname' type-id='0904d1cc' visibility='default' filepath='include/linux/fs.h' line='2726' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='1aafc68e' size-in-bits='64' id='64015654'/>
@@ -49427,177 +49586,177 @@
</data-member>
</class-decl>
<pointer-type-def type-id='cc3fe760' size-in-bits='64' id='670156c6'/>
- <class-decl name='hid_device' size-in-bits='62848' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='556' column='1' id='6703ad9d'>
+ <class-decl name='hid_device' size-in-bits='62848' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='557' column='1' id='6703ad9d'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='dev_rdesc' type-id='474e5dcc' visibility='default' filepath='include/linux/hid.h' line='557' column='1'/>
+ <var-decl name='dev_rdesc' type-id='474e5dcc' visibility='default' filepath='include/linux/hid.h' line='558' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='dev_rsize' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='558' column='1'/>
+ <var-decl name='dev_rsize' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='559' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='rdesc' type-id='474e5dcc' visibility='default' filepath='include/linux/hid.h' line='559' column='1'/>
+ <var-decl name='rdesc' type-id='474e5dcc' visibility='default' filepath='include/linux/hid.h' line='560' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='rsize' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='560' column='1'/>
+ <var-decl name='rsize' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='561' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='collection' type-id='f2428caf' visibility='default' filepath='include/linux/hid.h' line='561' column='1'/>
+ <var-decl name='collection' type-id='f2428caf' visibility='default' filepath='include/linux/hid.h' line='562' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='collection_size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='562' column='1'/>
+ <var-decl name='collection_size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='563' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='maxcollection' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='563' column='1'/>
+ <var-decl name='maxcollection' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='564' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='maxapplication' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='564' column='1'/>
+ <var-decl name='maxapplication' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='565' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='416'>
- <var-decl name='bus' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='565' column='1'/>
+ <var-decl name='bus' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='566' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='432'>
- <var-decl name='group' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='566' column='1'/>
+ <var-decl name='group' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='567' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='vendor' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='567' column='1'/>
+ <var-decl name='vendor' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='568' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='480'>
- <var-decl name='product' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='568' column='1'/>
+ <var-decl name='product' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='569' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='569' column='1'/>
+ <var-decl name='version' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='570' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='544'>
- <var-decl name='type' type-id='fa954a4e' visibility='default' filepath='include/linux/hid.h' line='570' column='1'/>
+ <var-decl name='type' type-id='fa954a4e' visibility='default' filepath='include/linux/hid.h' line='571' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='country' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='571' column='1'/>
+ <var-decl name='country' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='572' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='report_enum' type-id='e8e17bcc' visibility='default' filepath='include/linux/hid.h' line='572' column='1'/>
+ <var-decl name='report_enum' type-id='e8e17bcc' visibility='default' filepath='include/linux/hid.h' line='573' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='50368'>
- <var-decl name='led_work' type-id='ef9025d0' visibility='default' filepath='include/linux/hid.h' line='573' column='1'/>
+ <var-decl name='led_work' type-id='ef9025d0' visibility='default' filepath='include/linux/hid.h' line='574' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='50752'>
- <var-decl name='driver_input_lock' type-id='011244e5' visibility='default' filepath='include/linux/hid.h' line='575' column='1'/>
+ <var-decl name='driver_input_lock' type-id='011244e5' visibility='default' filepath='include/linux/hid.h' line='576' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='50944'>
- <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/hid.h' line='576' column='1'/>
+ <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/linux/hid.h' line='577' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='58240'>
- <var-decl name='driver' type-id='cbd2074d' visibility='default' filepath='include/linux/hid.h' line='577' column='1'/>
+ <var-decl name='driver' type-id='cbd2074d' visibility='default' filepath='include/linux/hid.h' line='578' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='58304'>
- <var-decl name='ll_driver' type-id='7073b1dc' visibility='default' filepath='include/linux/hid.h' line='579' column='1'/>
+ <var-decl name='ll_driver' type-id='7073b1dc' visibility='default' filepath='include/linux/hid.h' line='580' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='58368'>
- <var-decl name='ll_open_lock' type-id='925167dc' visibility='default' filepath='include/linux/hid.h' line='580' column='1'/>
+ <var-decl name='ll_open_lock' type-id='925167dc' visibility='default' filepath='include/linux/hid.h' line='581' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='58752'>
- <var-decl name='ll_open_count' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='581' column='1'/>
+ <var-decl name='ll_open_count' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='582' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='58816'>
- <var-decl name='battery' type-id='c0c93c9e' visibility='default' filepath='include/linux/hid.h' line='589' column='1'/>
+ <var-decl name='battery' type-id='c0c93c9e' visibility='default' filepath='include/linux/hid.h' line='590' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='58880'>
- <var-decl name='battery_capacity' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='590' column='1'/>
+ <var-decl name='battery_capacity' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='591' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='58912'>
- <var-decl name='battery_min' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='591' column='1'/>
+ <var-decl name='battery_min' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='592' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='58944'>
- <var-decl name='battery_max' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='592' column='1'/>
+ <var-decl name='battery_max' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='593' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='58976'>
- <var-decl name='battery_report_type' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='593' column='1'/>
+ <var-decl name='battery_report_type' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='594' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59008'>
- <var-decl name='battery_report_id' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='594' column='1'/>
+ <var-decl name='battery_report_id' type-id='3158a266' visibility='default' filepath='include/linux/hid.h' line='595' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59040'>
- <var-decl name='battery_status' type-id='82d56eba' visibility='default' filepath='include/linux/hid.h' line='595' column='1'/>
+ <var-decl name='battery_status' type-id='82d56eba' visibility='default' filepath='include/linux/hid.h' line='596' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59072'>
- <var-decl name='battery_avoid_query' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='596' column='1'/>
+ <var-decl name='battery_avoid_query' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='597' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59136'>
- <var-decl name='battery_ratelimit_time' type-id='fbc017ef' visibility='default' filepath='include/linux/hid.h' line='597' column='1'/>
+ <var-decl name='battery_ratelimit_time' type-id='fbc017ef' visibility='default' filepath='include/linux/hid.h' line='598' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59200'>
- <var-decl name='status' type-id='7359adad' visibility='default' filepath='include/linux/hid.h' line='600' column='1'/>
+ <var-decl name='status' type-id='7359adad' visibility='default' filepath='include/linux/hid.h' line='601' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59264'>
- <var-decl name='claimed' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='601' column='1'/>
+ <var-decl name='claimed' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='602' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59296'>
- <var-decl name='quirks' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='602' column='1'/>
+ <var-decl name='quirks' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='603' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59328'>
- <var-decl name='io_started' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='603' column='1'/>
+ <var-decl name='io_started' type-id='b50a4934' visibility='default' filepath='include/linux/hid.h' line='604' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59392'>
- <var-decl name='inputs' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='605' column='1'/>
+ <var-decl name='inputs' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='606' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59520'>
- <var-decl name='hiddev' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='606' column='1'/>
+ <var-decl name='hiddev' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='607' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59584'>
- <var-decl name='hidraw' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='607' column='1'/>
+ <var-decl name='hidraw' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='608' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='59648'>
- <var-decl name='name' type-id='e3204322' visibility='default' filepath='include/linux/hid.h' line='609' column='1'/>
+ <var-decl name='name' type-id='e3204322' visibility='default' filepath='include/linux/hid.h' line='610' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='60672'>
- <var-decl name='phys' type-id='59daf3ef' visibility='default' filepath='include/linux/hid.h' line='610' column='1'/>
+ <var-decl name='phys' type-id='59daf3ef' visibility='default' filepath='include/linux/hid.h' line='611' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='61184'>
- <var-decl name='uniq' type-id='59daf3ef' visibility='default' filepath='include/linux/hid.h' line='611' column='1'/>
+ <var-decl name='uniq' type-id='59daf3ef' visibility='default' filepath='include/linux/hid.h' line='612' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='61696'>
- <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='613' column='1'/>
+ <var-decl name='driver_data' type-id='eaa32e2f' visibility='default' filepath='include/linux/hid.h' line='614' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='61760'>
- <var-decl name='ff_init' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='616' column='1'/>
+ <var-decl name='ff_init' type-id='7e01f3db' visibility='default' filepath='include/linux/hid.h' line='617' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='61824'>
- <var-decl name='hiddev_connect' type-id='fde001a9' visibility='default' filepath='include/linux/hid.h' line='619' column='1'/>
+ <var-decl name='hiddev_connect' type-id='fde001a9' visibility='default' filepath='include/linux/hid.h' line='620' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='61888'>
- <var-decl name='hiddev_disconnect' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='620' column='1'/>
+ <var-decl name='hiddev_disconnect' type-id='5befc19c' visibility='default' filepath='include/linux/hid.h' line='621' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='61952'>
- <var-decl name='hiddev_hid_event' type-id='190eee1c' visibility='default' filepath='include/linux/hid.h' line='621' column='1'/>
+ <var-decl name='hiddev_hid_event' type-id='190eee1c' visibility='default' filepath='include/linux/hid.h' line='622' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='62016'>
- <var-decl name='hiddev_report_event' type-id='e23057dc' visibility='default' filepath='include/linux/hid.h' line='623' column='1'/>
+ <var-decl name='hiddev_report_event' type-id='e23057dc' visibility='default' filepath='include/linux/hid.h' line='624' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='62080'>
- <var-decl name='debug' type-id='8efea9e5' visibility='default' filepath='include/linux/hid.h' line='626' column='1'/>
+ <var-decl name='debug' type-id='8efea9e5' visibility='default' filepath='include/linux/hid.h' line='627' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='62144'>
- <var-decl name='debug_dir' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='627' column='1'/>
+ <var-decl name='debug_dir' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='628' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='62208'>
- <var-decl name='debug_rdesc' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='628' column='1'/>
+ <var-decl name='debug_rdesc' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='629' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='62272'>
- <var-decl name='debug_events' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='629' column='1'/>
+ <var-decl name='debug_events' type-id='27675065' visibility='default' filepath='include/linux/hid.h' line='630' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='62336'>
- <var-decl name='debug_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='630' column='1'/>
+ <var-decl name='debug_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='631' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='62464'>
- <var-decl name='debug_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/hid.h' line='631' column='1'/>
+ <var-decl name='debug_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/hid.h' line='632' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='62528'>
- <var-decl name='debug_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/hid.h' line='632' column='1'/>
+ <var-decl name='debug_wait' type-id='b5ab048f' visibility='default' filepath='include/linux/hid.h' line='633' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='62720'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/hid.h' line='634' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/hid.h' line='635' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='62784'>
- <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/hid.h' line='635' column='1'/>
+ <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/hid.h' line='636' column='1'/>
</data-member>
</class-decl>
<typedef-decl name='wait_queue_func_t' type-id='3e643710' filepath='include/linux/wait.h' line='16' column='1' id='67119c17'/>
@@ -49805,7 +49964,7 @@
<array-type-def dimensions='1' type-id='f0981eeb' size-in-bits='320' id='67c1c82c'>
<subrange length='10' type-id='7ff19f0f' id='487da03a'/>
</array-type-def>
- <enum-decl name='bpf_attach_type' filepath='include/uapi/linux/bpf.h' line='954' column='1' id='67ce11ed'>
+ <enum-decl name='bpf_attach_type' filepath='include/uapi/linux/bpf.h' line='966' column='1' id='67ce11ed'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='BPF_CGROUP_INET_INGRESS' value='0'/>
<enumerator name='BPF_CGROUP_INET_EGRESS' value='1'/>
@@ -50121,330 +50280,330 @@
<pointer-type-def type-id='4041f6de' size-in-bits='64' id='684afc90'/>
<pointer-type-def type-id='2b18e57b' size-in-bits='64' id='6850d327'/>
<pointer-type-def type-id='3b03705e' size-in-bits='64' id='6850e780'/>
- <class-decl name='wiphy' size-in-bits='13312' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5578' column='1' id='68523a94'>
+ <class-decl name='wiphy' size-in-bits='13312' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5633' column='1' id='68523a94'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='mtx' type-id='925167dc' visibility='default' filepath='include/net/cfg80211.h' line='5579' column='1'/>
+ <var-decl name='mtx' type-id='925167dc' visibility='default' filepath='include/net/cfg80211.h' line='5634' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='perm_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='5583' column='1'/>
+ <var-decl name='perm_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='5638' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='432'>
- <var-decl name='addr_mask' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='5584' column='1'/>
+ <var-decl name='addr_mask' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='5639' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='addresses' type-id='01b378ab' visibility='default' filepath='include/net/cfg80211.h' line='5586' column='1'/>
+ <var-decl name='addresses' type-id='01b378ab' visibility='default' filepath='include/net/cfg80211.h' line='5641' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='mgmt_stypes' type-id='0cda9080' visibility='default' filepath='include/net/cfg80211.h' line='5588' column='1'/>
+ <var-decl name='mgmt_stypes' type-id='0cda9080' visibility='default' filepath='include/net/cfg80211.h' line='5643' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='iface_combinations' type-id='fa32a449' visibility='default' filepath='include/net/cfg80211.h' line='5590' column='1'/>
+ <var-decl name='iface_combinations' type-id='fa32a449' visibility='default' filepath='include/net/cfg80211.h' line='5645' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='n_iface_combinations' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5591' column='1'/>
+ <var-decl name='n_iface_combinations' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5646' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='736'>
- <var-decl name='software_iftypes' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5592' column='1'/>
+ <var-decl name='software_iftypes' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5647' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='752'>
- <var-decl name='n_addresses' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5594' column='1'/>
+ <var-decl name='n_addresses' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5649' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='interface_modes' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5597' column='1'/>
+ <var-decl name='interface_modes' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5652' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='784'>
- <var-decl name='max_acl_mac_addrs' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5599' column='1'/>
+ <var-decl name='max_acl_mac_addrs' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5654' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='800'>
- <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5601' column='1'/>
+ <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5656' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='regulatory_flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5601' column='1'/>
+ <var-decl name='regulatory_flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5656' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='864'>
- <var-decl name='features' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5601' column='1'/>
+ <var-decl name='features' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5656' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='ext_features' type-id='cef57087' visibility='default' filepath='include/net/cfg80211.h' line='5602' column='1'/>
+ <var-decl name='ext_features' type-id='cef57087' visibility='default' filepath='include/net/cfg80211.h' line='5657' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='992'>
- <var-decl name='ap_sme_capa' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5604' column='1'/>
+ <var-decl name='ap_sme_capa' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5659' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='signal_type' type-id='b8524648' visibility='default' filepath='include/net/cfg80211.h' line='5606' column='1'/>
+ <var-decl name='signal_type' type-id='b8524648' visibility='default' filepath='include/net/cfg80211.h' line='5661' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1056'>
- <var-decl name='bss_priv_size' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5608' column='1'/>
+ <var-decl name='bss_priv_size' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5663' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='max_scan_ssids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5609' column='1'/>
+ <var-decl name='max_scan_ssids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5664' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1096'>
- <var-decl name='max_sched_scan_reqs' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5610' column='1'/>
+ <var-decl name='max_sched_scan_reqs' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5665' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1104'>
- <var-decl name='max_sched_scan_ssids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5611' column='1'/>
+ <var-decl name='max_sched_scan_ssids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5666' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1112'>
- <var-decl name='max_match_sets' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5612' column='1'/>
+ <var-decl name='max_match_sets' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5667' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1120'>
- <var-decl name='max_scan_ie_len' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5613' column='1'/>
+ <var-decl name='max_scan_ie_len' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5668' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1136'>
- <var-decl name='max_sched_scan_ie_len' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5614' column='1'/>
+ <var-decl name='max_sched_scan_ie_len' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5669' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='max_sched_scan_plans' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5615' column='1'/>
+ <var-decl name='max_sched_scan_plans' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5670' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1184'>
- <var-decl name='max_sched_scan_plan_interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5616' column='1'/>
+ <var-decl name='max_sched_scan_plan_interval' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5671' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='max_sched_scan_plan_iterations' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5617' column='1'/>
+ <var-decl name='max_sched_scan_plan_iterations' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5672' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1248'>
- <var-decl name='n_cipher_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5619' column='1'/>
+ <var-decl name='n_cipher_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5674' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='cipher_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5620' column='1'/>
+ <var-decl name='cipher_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5675' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='n_akm_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5622' column='1'/>
+ <var-decl name='n_akm_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5677' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='akm_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5623' column='1'/>
+ <var-decl name='akm_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5678' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='iftype_akm_suites' type-id='6196d741' visibility='default' filepath='include/net/cfg80211.h' line='5625' column='1'/>
+ <var-decl name='iftype_akm_suites' type-id='6196d741' visibility='default' filepath='include/net/cfg80211.h' line='5680' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='num_iftype_akm_suites' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5626' column='1'/>
+ <var-decl name='num_iftype_akm_suites' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5681' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1568'>
- <var-decl name='retry_short' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5628' column='1'/>
+ <var-decl name='retry_short' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5683' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1576'>
- <var-decl name='retry_long' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5629' column='1'/>
+ <var-decl name='retry_long' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5684' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
- <var-decl name='frag_threshold' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5630' column='1'/>
+ <var-decl name='frag_threshold' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5685' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1632'>
- <var-decl name='rts_threshold' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5631' column='1'/>
+ <var-decl name='rts_threshold' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5686' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
- <var-decl name='coverage_class' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5632' column='1'/>
+ <var-decl name='coverage_class' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5687' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1672'>
- <var-decl name='fw_version' type-id='16dc656a' visibility='default' filepath='include/net/cfg80211.h' line='5634' column='1'/>
+ <var-decl name='fw_version' type-id='16dc656a' visibility='default' filepath='include/net/cfg80211.h' line='5689' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1952'>
- <var-decl name='hw_version' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5635' column='1'/>
+ <var-decl name='hw_version' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5690' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1984'>
- <var-decl name='wowlan' type-id='78a34b70' visibility='default' filepath='include/net/cfg80211.h' line='5638' column='1'/>
+ <var-decl name='wowlan' type-id='78a34b70' visibility='default' filepath='include/net/cfg80211.h' line='5693' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2048'>
- <var-decl name='wowlan_config' type-id='9d025b00' visibility='default' filepath='include/net/cfg80211.h' line='5639' column='1'/>
+ <var-decl name='wowlan_config' type-id='9d025b00' visibility='default' filepath='include/net/cfg80211.h' line='5694' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2112'>
- <var-decl name='max_remain_on_channel_duration' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5642' column='1'/>
+ <var-decl name='max_remain_on_channel_duration' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5697' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2128'>
- <var-decl name='max_num_pmkids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5644' column='1'/>
+ <var-decl name='max_num_pmkids' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5699' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2144'>
- <var-decl name='available_antennas_tx' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5646' column='1'/>
+ <var-decl name='available_antennas_tx' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5701' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2176'>
- <var-decl name='available_antennas_rx' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5647' column='1'/>
+ <var-decl name='available_antennas_rx' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5702' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2208'>
- <var-decl name='probe_resp_offload' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5649' column='1'/>
+ <var-decl name='probe_resp_offload' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5704' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2240'>
- <var-decl name='extended_capabilities' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5651' column='1'/>
+ <var-decl name='extended_capabilities' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5706' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2304'>
- <var-decl name='extended_capabilities_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5651' column='1'/>
+ <var-decl name='extended_capabilities_mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='5706' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2368'>
- <var-decl name='extended_capabilities_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5652' column='1'/>
+ <var-decl name='extended_capabilities_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5707' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2432'>
- <var-decl name='iftype_ext_capab' type-id='3ca25343' visibility='default' filepath='include/net/cfg80211.h' line='5654' column='1'/>
+ <var-decl name='iftype_ext_capab' type-id='3ca25343' visibility='default' filepath='include/net/cfg80211.h' line='5709' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2496'>
- <var-decl name='num_iftype_ext_capab' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5655' column='1'/>
+ <var-decl name='num_iftype_ext_capab' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5710' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2560'>
- <var-decl name='privid' type-id='eaa32e2f' visibility='default' filepath='include/net/cfg80211.h' line='5657' column='1'/>
+ <var-decl name='privid' type-id='eaa32e2f' visibility='default' filepath='include/net/cfg80211.h' line='5712' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2624'>
- <var-decl name='bands' type-id='6816d906' visibility='default' filepath='include/net/cfg80211.h' line='5659' column='1'/>
+ <var-decl name='bands' type-id='6816d906' visibility='default' filepath='include/net/cfg80211.h' line='5714' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3008'>
- <var-decl name='reg_notifier' type-id='39ee8359' visibility='default' filepath='include/net/cfg80211.h' line='5661' column='1'/>
+ <var-decl name='reg_notifier' type-id='39ee8359' visibility='default' filepath='include/net/cfg80211.h' line='5716' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3072'>
- <var-decl name='regd' type-id='4e819401' visibility='default' filepath='include/net/cfg80211.h' line='5666' column='1'/>
+ <var-decl name='regd' type-id='4e819401' visibility='default' filepath='include/net/cfg80211.h' line='5721' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='3136'>
- <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/net/cfg80211.h' line='5668' column='1'/>
+ <var-decl name='dev' type-id='66e487eb' visibility='default' filepath='include/net/cfg80211.h' line='5723' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10432'>
- <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5670' column='1'/>
+ <var-decl name='registered' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='5725' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10496'>
- <var-decl name='debugfsdir' type-id='27675065' visibility='default' filepath='include/net/cfg80211.h' line='5672' column='1'/>
+ <var-decl name='debugfsdir' type-id='27675065' visibility='default' filepath='include/net/cfg80211.h' line='5727' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10560'>
- <var-decl name='ht_capa_mod_mask' type-id='81f1a1a8' visibility='default' filepath='include/net/cfg80211.h' line='5674' column='1'/>
+ <var-decl name='ht_capa_mod_mask' type-id='81f1a1a8' visibility='default' filepath='include/net/cfg80211.h' line='5729' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10624'>
- <var-decl name='vht_capa_mod_mask' type-id='fffb07a4' visibility='default' filepath='include/net/cfg80211.h' line='5675' column='1'/>
+ <var-decl name='vht_capa_mod_mask' type-id='fffb07a4' visibility='default' filepath='include/net/cfg80211.h' line='5730' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10688'>
- <var-decl name='wdev_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='5677' column='1'/>
+ <var-decl name='wdev_list' type-id='72f469ec' visibility='default' filepath='include/net/cfg80211.h' line='5732' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10816'>
- <var-decl name='_net' type-id='c9df1e6c' visibility='default' filepath='include/net/cfg80211.h' line='5679' column='1'/>
+ <var-decl name='_net' type-id='c9df1e6c' visibility='default' filepath='include/net/cfg80211.h' line='5734' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10880'>
- <var-decl name='coalesce' type-id='9ef499bf' visibility='default' filepath='include/net/cfg80211.h' line='5685' column='1'/>
+ <var-decl name='coalesce' type-id='9ef499bf' visibility='default' filepath='include/net/cfg80211.h' line='5740' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10944'>
- <var-decl name='vendor_commands' type-id='41e3f782' visibility='default' filepath='include/net/cfg80211.h' line='5687' column='1'/>
+ <var-decl name='vendor_commands' type-id='41e3f782' visibility='default' filepath='include/net/cfg80211.h' line='5742' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11008'>
- <var-decl name='vendor_events' type-id='b188cc4f' visibility='default' filepath='include/net/cfg80211.h' line='5688' column='1'/>
+ <var-decl name='vendor_events' type-id='b188cc4f' visibility='default' filepath='include/net/cfg80211.h' line='5743' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11072'>
- <var-decl name='n_vendor_commands' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5689' column='1'/>
+ <var-decl name='n_vendor_commands' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5744' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11104'>
- <var-decl name='n_vendor_events' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5689' column='1'/>
+ <var-decl name='n_vendor_events' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5744' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11136'>
- <var-decl name='max_ap_assoc_sta' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5691' column='1'/>
+ <var-decl name='max_ap_assoc_sta' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5746' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11152'>
- <var-decl name='max_num_csa_counters' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5693' column='1'/>
+ <var-decl name='max_num_csa_counters' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5748' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11168'>
- <var-decl name='bss_select_support' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5695' column='1'/>
+ <var-decl name='bss_select_support' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5750' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11200'>
- <var-decl name='nan_supported_bands' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5697' column='1'/>
+ <var-decl name='nan_supported_bands' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5752' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11232'>
- <var-decl name='txq_limit' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5699' column='1'/>
+ <var-decl name='txq_limit' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5754' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11264'>
- <var-decl name='txq_memory_limit' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5700' column='1'/>
+ <var-decl name='txq_memory_limit' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5755' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11296'>
- <var-decl name='txq_quantum' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5701' column='1'/>
+ <var-decl name='txq_quantum' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5756' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11328'>
- <var-decl name='tx_queue_len' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='5703' column='1'/>
+ <var-decl name='tx_queue_len' type-id='7359adad' visibility='default' filepath='include/net/cfg80211.h' line='5758' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11392'>
- <var-decl name='support_mbssid' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5705' column='1'/>
+ <var-decl name='support_mbssid' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5760' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11393'>
- <var-decl name='support_only_he_mbssid' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5706' column='1'/>
+ <var-decl name='support_only_he_mbssid' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5761' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11456'>
- <var-decl name='pmsr_capa' type-id='5abfac26' visibility='default' filepath='include/net/cfg80211.h' line='5708' column='1'/>
+ <var-decl name='pmsr_capa' type-id='5abfac26' visibility='default' filepath='include/net/cfg80211.h' line='5763' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11520'>
- <var-decl name='tid_config_support' type-id='e7f44073' visibility='default' filepath='include/net/cfg80211.h' line='5713' column='1'/>
+ <var-decl name='tid_config_support' type-id='e7f44073' visibility='default' filepath='include/net/cfg80211.h' line='5768' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11712'>
- <var-decl name='max_data_retry_count' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5715' column='1'/>
+ <var-decl name='max_data_retry_count' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5770' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11776'>
- <var-decl name='sar_capa' type-id='cf61e92f' visibility='default' filepath='include/net/cfg80211.h' line='5717' column='1'/>
+ <var-decl name='sar_capa' type-id='cf61e92f' visibility='default' filepath='include/net/cfg80211.h' line='5772' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11840'>
- <var-decl name='rfkill' type-id='c5b94c75' visibility='default' filepath='include/net/cfg80211.h' line='5719' column='1'/>
+ <var-decl name='rfkill' type-id='c5b94c75' visibility='default' filepath='include/net/cfg80211.h' line='5774' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11904'>
- <var-decl name='mbssid_max_interfaces' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5721' column='1'/>
+ <var-decl name='mbssid_max_interfaces' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5776' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11912'>
- <var-decl name='ema_max_profile_periodicity' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5722' column='1'/>
+ <var-decl name='ema_max_profile_periodicity' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5777' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11920'>
- <var-decl name='max_num_akm_suites' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5723' column='1'/>
+ <var-decl name='max_num_akm_suites' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5778' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11968'>
- <var-decl name='' type-id='ac5ab6a4' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1'/>
+ <var-decl name='' type-id='ac5ab6a4' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12032'>
- <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5727' column='1'/>
+ <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5782' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12096'>
- <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5728' column='1'/>
+ <var-decl name='android_backport_reserved3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5783' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12160'>
- <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5729' column='1'/>
+ <var-decl name='android_backport_reserved4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5784' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12224'>
- <var-decl name='android_backport_reserved5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5730' column='1'/>
+ <var-decl name='android_backport_reserved5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5785' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12288'>
- <var-decl name='android_backport_reserved6' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5731' column='1'/>
+ <var-decl name='android_backport_reserved6' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5786' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12352'>
- <var-decl name='android_backport_reserved7' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5732' column='1'/>
+ <var-decl name='android_backport_reserved7' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5787' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12416'>
- <var-decl name='android_backport_reserved8' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5733' column='1'/>
+ <var-decl name='android_backport_reserved8' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5788' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12480'>
- <var-decl name='android_backport_reserved9' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5734' column='1'/>
+ <var-decl name='android_backport_reserved9' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5789' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12544'>
- <var-decl name='android_backport_reserved10' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5735' column='1'/>
+ <var-decl name='android_backport_reserved10' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5790' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12608'>
- <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5737' column='1'/>
+ <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5792' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12672'>
- <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5738' column='1'/>
+ <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5793' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12736'>
- <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5739' column='1'/>
+ <var-decl name='android_vendor_data3' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5794' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12800'>
- <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5740' column='1'/>
+ <var-decl name='android_vendor_data4' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5795' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12864'>
- <var-decl name='android_vendor_data5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5741' column='1'/>
+ <var-decl name='android_vendor_data5' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5796' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12928'>
- <var-decl name='android_vendor_data6' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5742' column='1'/>
+ <var-decl name='android_vendor_data6' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5797' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12992'>
- <var-decl name='android_vendor_data7' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5743' column='1'/>
+ <var-decl name='android_vendor_data7' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5798' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='13056'>
- <var-decl name='android_vendor_data8' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5744' column='1'/>
+ <var-decl name='android_vendor_data8' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5799' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='13120'>
- <var-decl name='android_vendor_data9' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5745' column='1'/>
+ <var-decl name='android_vendor_data9' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5800' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='13184'>
- <var-decl name='android_vendor_data10' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5746' column='1'/>
+ <var-decl name='android_vendor_data10' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5801' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='13248'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5749' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5804' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='13312'>
- <var-decl name='priv' type-id='e84913bd' visibility='default' filepath='include/net/cfg80211.h' line='5751' column='1'/>
+ <var-decl name='priv' type-id='e84913bd' visibility='default' filepath='include/net/cfg80211.h' line='5806' column='1'/>
</data-member>
</class-decl>
<array-type-def dimensions='1' type-id='5cb8e7e2' size-in-bits='512' id='6853ab38'>
@@ -50582,6 +50741,9 @@
</data-member>
</class-decl>
<pointer-type-def type-id='9e22fc50' size-in-bits='64' id='68a88aaa'/>
+ <array-type-def dimensions='1' type-id='b92c8d0d' size-in-bits='1600' id='68a92070'>
+ <subrange length='5' type-id='7ff19f0f' id='53010e10'/>
+ </array-type-def>
<function-type size-in-bits='64' id='68adba6a'>
<parameter type-id='b64ad7cb'/>
<parameter type-id='c9982f26'/>
@@ -51482,7 +51644,7 @@
</class-decl>
<pointer-type-def type-id='3e1d184a' size-in-bits='64' id='6aee814c'/>
<pointer-type-def type-id='74e7a035' size-in-bits='64' id='6af64a09'/>
- <class-decl name='uncached_list' size-in-bits='192' is-struct='yes' visibility='default' filepath='net/ipv4/route.c' line='1505' column='1' id='6b1203e5'>
+ <class-decl name='uncached_list' size-in-bits='192' is-struct='yes' visibility='default' filepath='net/ipv6/route.c' line='130' column='1' id='6b1203e5'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='net/ipv4/route.c' line='1506' column='1'/>
</data-member>
@@ -53268,6 +53430,7 @@
<pointer-type-def type-id='bdcf5751' size-in-bits='64' id='7041aa49'/>
<pointer-type-def type-id='5113b296' size-in-bits='64' id='70487b28'/>
<pointer-type-def type-id='f5c90b3f' size-in-bits='64' id='704982b4'/>
+ <pointer-type-def type-id='5ea6264e' size-in-bits='64' id='704d2394'/>
<class-decl name='writeback_control' size-in-bits='768' is-struct='yes' visibility='default' filepath='include/linux/writeback.h' line='51' column='1' id='705711f5'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='nr_to_write' type-id='bd54fe1a' visibility='default' filepath='include/linux/writeback.h' line='52' column='1'/>
@@ -53578,24 +53741,24 @@
<var-decl name='queue_ctx' type-id='9a335021' visibility='default' filepath='block/blk-mq.h' line='12' column='1'/>
</data-member>
</class-decl>
- <class-decl name='fasync_struct' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1396' column='1' id='70c545cd'>
+ <class-decl name='fasync_struct' size-in-bits='384' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1402' column='1' id='70c545cd'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='fa_lock' type-id='ac16795b' visibility='default' filepath='include/linux/fs.h' line='1397' column='1'/>
+ <var-decl name='fa_lock' type-id='ac16795b' visibility='default' filepath='include/linux/fs.h' line='1403' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='magic' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1398' column='1'/>
+ <var-decl name='magic' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1404' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='fa_fd' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1399' column='1'/>
+ <var-decl name='fa_fd' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1405' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='fa_next' type-id='5bb9c75d' visibility='default' filepath='include/linux/fs.h' line='1400' column='1'/>
+ <var-decl name='fa_next' type-id='5bb9c75d' visibility='default' filepath='include/linux/fs.h' line='1406' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='fa_file' type-id='77e79a4b' visibility='default' filepath='include/linux/fs.h' line='1401' column='1'/>
+ <var-decl name='fa_file' type-id='77e79a4b' visibility='default' filepath='include/linux/fs.h' line='1407' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='fa_rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='1402' column='1'/>
+ <var-decl name='fa_rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='1408' column='1'/>
</data-member>
</class-decl>
<array-type-def dimensions='1' type-id='95e97e5e' size-in-bits='1536' id='70cd8d02'>
@@ -53645,24 +53808,24 @@
</data-member>
</class-decl>
<pointer-type-def type-id='291d9c02' size-in-bits='64' id='7114e104'/>
- <class-decl name='wiphy_coalesce_support' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5174' column='1' id='7124a2a6'>
+ <class-decl name='wiphy_coalesce_support' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5229' column='1' id='7124a2a6'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='n_rules' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5175' column='1'/>
+ <var-decl name='n_rules' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5230' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='max_delay' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5176' column='1'/>
+ <var-decl name='max_delay' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5231' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5177' column='1'/>
+ <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5232' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='pattern_max_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5178' column='1'/>
+ <var-decl name='pattern_max_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5233' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='pattern_min_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5179' column='1'/>
+ <var-decl name='pattern_min_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5234' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='max_pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5180' column='1'/>
+ <var-decl name='max_pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5235' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='4292193b' size-in-bits='64' id='7126cf8f'/>
@@ -55154,87 +55317,87 @@
<pointer-type-def type-id='1e330b13' size-in-bits='64' id='74005b57'/>
<pointer-type-def type-id='5cdc243f' size-in-bits='64' id='740a3d8b'/>
<pointer-type-def type-id='f3d147c3' size-in-bits='64' id='740b5503'/>
- <class-decl name='sched_class' size-in-bits='1728' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='2182' column='1' id='74191d27'>
+ <class-decl name='sched_class' size-in-bits='1728' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='2168' column='1' id='74191d27'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='uclamp_enabled' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='2185' column='1'/>
+ <var-decl name='uclamp_enabled' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='2171' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='enqueue_task' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2188' column='1'/>
+ <var-decl name='enqueue_task' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2174' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='dequeue_task' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2189' column='1'/>
+ <var-decl name='dequeue_task' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2175' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='yield_task' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2190' column='1'/>
+ <var-decl name='yield_task' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2176' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='yield_to_task' type-id='7dfe7cd1' visibility='default' filepath='kernel/sched/sched.h' line='2191' column='1'/>
+ <var-decl name='yield_to_task' type-id='7dfe7cd1' visibility='default' filepath='kernel/sched/sched.h' line='2177' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='check_preempt_curr' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2193' column='1'/>
+ <var-decl name='check_preempt_curr' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2179' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='pick_next_task' type-id='ba703a2c' visibility='default' filepath='kernel/sched/sched.h' line='2195' column='1'/>
+ <var-decl name='pick_next_task' type-id='ba703a2c' visibility='default' filepath='kernel/sched/sched.h' line='2181' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='put_prev_task' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2197' column='1'/>
+ <var-decl name='put_prev_task' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2183' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='set_next_task' type-id='f13b7179' visibility='default' filepath='kernel/sched/sched.h' line='2198' column='1'/>
+ <var-decl name='set_next_task' type-id='f13b7179' visibility='default' filepath='kernel/sched/sched.h' line='2184' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='balance' type-id='5346c726' visibility='default' filepath='kernel/sched/sched.h' line='2201' column='1'/>
+ <var-decl name='balance' type-id='5346c726' visibility='default' filepath='kernel/sched/sched.h' line='2187' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='select_task_rq' type-id='8d80ced8' visibility='default' filepath='kernel/sched/sched.h' line='2202' column='1'/>
+ <var-decl name='select_task_rq' type-id='8d80ced8' visibility='default' filepath='kernel/sched/sched.h' line='2188' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='pick_task' type-id='ba703a2c' visibility='default' filepath='kernel/sched/sched.h' line='2204' column='1'/>
+ <var-decl name='pick_task' type-id='ba703a2c' visibility='default' filepath='kernel/sched/sched.h' line='2190' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='migrate_task_rq' type-id='9d640202' visibility='default' filepath='kernel/sched/sched.h' line='2206' column='1'/>
+ <var-decl name='migrate_task_rq' type-id='9d640202' visibility='default' filepath='kernel/sched/sched.h' line='2192' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='task_woken' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2208' column='1'/>
+ <var-decl name='task_woken' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2194' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='set_cpus_allowed' type-id='41c42b69' visibility='default' filepath='kernel/sched/sched.h' line='2210' column='1'/>
+ <var-decl name='set_cpus_allowed' type-id='41c42b69' visibility='default' filepath='kernel/sched/sched.h' line='2196' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='rq_online' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2214' column='1'/>
+ <var-decl name='rq_online' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2200' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='rq_offline' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2215' column='1'/>
+ <var-decl name='rq_offline' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2201' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='find_lock_rq' type-id='64c408c1' visibility='default' filepath='kernel/sched/sched.h' line='2217' column='1'/>
+ <var-decl name='find_lock_rq' type-id='64c408c1' visibility='default' filepath='kernel/sched/sched.h' line='2203' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='task_tick' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2220' column='1'/>
+ <var-decl name='task_tick' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2206' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='task_fork' type-id='1c9e19fb' visibility='default' filepath='kernel/sched/sched.h' line='2221' column='1'/>
+ <var-decl name='task_fork' type-id='1c9e19fb' visibility='default' filepath='kernel/sched/sched.h' line='2207' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='task_dead' type-id='1c9e19fb' visibility='default' filepath='kernel/sched/sched.h' line='2222' column='1'/>
+ <var-decl name='task_dead' type-id='1c9e19fb' visibility='default' filepath='kernel/sched/sched.h' line='2208' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='switched_from' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2229' column='1'/>
+ <var-decl name='switched_from' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2215' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='switched_to' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2230' column='1'/>
+ <var-decl name='switched_to' type-id='604374c8' visibility='default' filepath='kernel/sched/sched.h' line='2216' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='prio_changed' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2231' column='1'/>
+ <var-decl name='prio_changed' type-id='7bca30b7' visibility='default' filepath='kernel/sched/sched.h' line='2217' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='get_rr_interval' type-id='c79c9f4c' visibility='default' filepath='kernel/sched/sched.h' line='2234' column='1'/>
+ <var-decl name='get_rr_interval' type-id='c79c9f4c' visibility='default' filepath='kernel/sched/sched.h' line='2220' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
- <var-decl name='update_curr' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2237' column='1'/>
+ <var-decl name='update_curr' type-id='d846ae3b' visibility='default' filepath='kernel/sched/sched.h' line='2223' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
- <var-decl name='task_change_group' type-id='9d640202' visibility='default' filepath='kernel/sched/sched.h' line='2243' column='1'/>
+ <var-decl name='task_change_group' type-id='9d640202' visibility='default' filepath='kernel/sched/sched.h' line='2229' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='c2d135ef' size-in-bits='64' id='741cc96e'/>
@@ -55244,18 +55407,18 @@
<return type-id='95e97e5e'/>
</function-type>
<pointer-type-def type-id='395aad7e' size-in-bits='64' id='74287ea0'/>
- <class-decl name='cfg80211_match_set' size-in-bits='544' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2619' column='1' id='7430554e'>
+ <class-decl name='cfg80211_match_set' size-in-bits='544' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2651' column='1' id='7430554e'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ssid' type-id='0c960fcf' visibility='default' filepath='include/net/cfg80211.h' line='2620' column='1'/>
+ <var-decl name='ssid' type-id='0c960fcf' visibility='default' filepath='include/net/cfg80211.h' line='2652' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='264'>
- <var-decl name='bssid' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2621' column='1'/>
+ <var-decl name='bssid' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='2653' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='rssi_thold' type-id='a7832498' visibility='default' filepath='include/net/cfg80211.h' line='2622' column='1'/>
+ <var-decl name='rssi_thold' type-id='a7832498' visibility='default' filepath='include/net/cfg80211.h' line='2654' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='per_band_rssi_thold' type-id='2cccef85' visibility='default' filepath='include/net/cfg80211.h' line='2623' column='1'/>
+ <var-decl name='per_band_rssi_thold' type-id='2cccef85' visibility='default' filepath='include/net/cfg80211.h' line='2655' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='63df6bcc' size-in-bits='64' id='7432d5be'/>
@@ -55933,18 +56096,18 @@
<parameter type-id='37175e4d'/>
<return type-id='48b5725f'/>
</function-type>
- <class-decl name='cfg80211_pkt_pattern' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3396' column='1' id='76959226'>
+ <class-decl name='cfg80211_pkt_pattern' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3428' column='1' id='76959226'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3397' column='1'/>
+ <var-decl name='mask' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3429' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='pattern' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3397' column='1'/>
+ <var-decl name='pattern' type-id='bbaf3419' visibility='default' filepath='include/net/cfg80211.h' line='3429' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='pattern_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3398' column='1'/>
+ <var-decl name='pattern_len' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3430' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3399' column='1'/>
+ <var-decl name='pkt_offset' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3431' column='1'/>
</data-member>
</class-decl>
<array-type-def dimensions='1' type-id='f22a8abb' size-in-bits='512' id='7698c98a'>
@@ -56628,6 +56791,7 @@
</function-type>
<pointer-type-def type-id='2d8429ef' size-in-bits='64' id='7801a3a3'/>
<pointer-type-def type-id='fcc07cbf' size-in-bits='64' id='78041e8f'/>
+ <pointer-type-def type-id='3713d87e' size-in-bits='64' id='7806f534'/>
<function-type size-in-bits='64' id='78117ea6'>
<parameter type-id='7544e824'/>
<parameter type-id='b11825ce'/>
@@ -56962,15 +57126,15 @@
<var-decl name='__pg_advance' type-id='95e97e5e' visibility='default' filepath='include/linux/scatterlist.h' line='410' column='1'/>
</data-member>
</class-decl>
- <class-decl name='hid_usage_id' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='704' column='1' id='78e57306'>
+ <class-decl name='hid_usage_id' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='705' column='1' id='78e57306'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='usage_hid' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='705' column='1'/>
+ <var-decl name='usage_hid' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='706' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='usage_type' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='706' column='1'/>
+ <var-decl name='usage_type' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='707' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='usage_code' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='707' column='1'/>
+ <var-decl name='usage_code' type-id='3f1a6b60' visibility='default' filepath='include/linux/hid.h' line='708' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='1fc93694' size-in-bits='64' id='78e7ce8e'/>
@@ -57049,7 +57213,7 @@
<return type-id='48b5725f'/>
</function-type>
<pointer-type-def type-id='d17d9181' size-in-bits='64' id='790a00b9'/>
- <enum-decl name='nl80211_reg_initiator' filepath='include/uapi/linux/nl80211.h' line='4251' column='1' id='790cc131'>
+ <enum-decl name='nl80211_reg_initiator' filepath='include/uapi/linux/nl80211.h' line='4276' column='1' id='790cc131'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='NL80211_REGDOM_SET_BY_CORE' value='0'/>
<enumerator name='NL80211_REGDOM_SET_BY_USER' value='1'/>
@@ -59210,114 +59374,114 @@
</data-member>
</class-decl>
<pointer-type-def type-id='c551f1b5' size-in-bits='64' id='7dfe7cd1'/>
- <class-decl name='file_operations' size-in-bits='2304' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2049' column='1' id='7dffcde2'>
+ <class-decl name='file_operations' size-in-bits='2304' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2055' column='1' id='7dffcde2'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs.h' line='2050' column='1'/>
+ <var-decl name='owner' type-id='2730d015' visibility='default' filepath='include/linux/fs.h' line='2056' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='llseek' type-id='07ebb4cd' visibility='default' filepath='include/linux/fs.h' line='2051' column='1'/>
+ <var-decl name='llseek' type-id='07ebb4cd' visibility='default' filepath='include/linux/fs.h' line='2057' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='read' type-id='4d8f5625' visibility='default' filepath='include/linux/fs.h' line='2052' column='1'/>
+ <var-decl name='read' type-id='4d8f5625' visibility='default' filepath='include/linux/fs.h' line='2058' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='write' type-id='5f29549c' visibility='default' filepath='include/linux/fs.h' line='2053' column='1'/>
+ <var-decl name='write' type-id='5f29549c' visibility='default' filepath='include/linux/fs.h' line='2059' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='read_iter' type-id='227e209d' visibility='default' filepath='include/linux/fs.h' line='2054' column='1'/>
+ <var-decl name='read_iter' type-id='227e209d' visibility='default' filepath='include/linux/fs.h' line='2060' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='write_iter' type-id='227e209d' visibility='default' filepath='include/linux/fs.h' line='2055' column='1'/>
+ <var-decl name='write_iter' type-id='227e209d' visibility='default' filepath='include/linux/fs.h' line='2061' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='iopoll' type-id='6c4618be' visibility='default' filepath='include/linux/fs.h' line='2056' column='1'/>
+ <var-decl name='iopoll' type-id='6c4618be' visibility='default' filepath='include/linux/fs.h' line='2062' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='iterate' type-id='42beb73a' visibility='default' filepath='include/linux/fs.h' line='2057' column='1'/>
+ <var-decl name='iterate' type-id='42beb73a' visibility='default' filepath='include/linux/fs.h' line='2063' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='iterate_shared' type-id='42beb73a' visibility='default' filepath='include/linux/fs.h' line='2058' column='1'/>
+ <var-decl name='iterate_shared' type-id='42beb73a' visibility='default' filepath='include/linux/fs.h' line='2064' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='poll' type-id='4d01ede7' visibility='default' filepath='include/linux/fs.h' line='2059' column='1'/>
+ <var-decl name='poll' type-id='4d01ede7' visibility='default' filepath='include/linux/fs.h' line='2065' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='unlocked_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/fs.h' line='2060' column='1'/>
+ <var-decl name='unlocked_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/fs.h' line='2066' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='compat_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/fs.h' line='2061' column='1'/>
+ <var-decl name='compat_ioctl' type-id='fc7daf55' visibility='default' filepath='include/linux/fs.h' line='2067' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='mmap' type-id='8ea2626c' visibility='default' filepath='include/linux/fs.h' line='2062' column='1'/>
+ <var-decl name='mmap' type-id='8ea2626c' visibility='default' filepath='include/linux/fs.h' line='2068' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='mmap_supported_flags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='2063' column='1'/>
+ <var-decl name='mmap_supported_flags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='2069' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='open' type-id='47800058' visibility='default' filepath='include/linux/fs.h' line='2064' column='1'/>
+ <var-decl name='open' type-id='47800058' visibility='default' filepath='include/linux/fs.h' line='2070' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='flush' type-id='5ddef2dd' visibility='default' filepath='include/linux/fs.h' line='2065' column='1'/>
+ <var-decl name='flush' type-id='5ddef2dd' visibility='default' filepath='include/linux/fs.h' line='2071' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='release' type-id='47800058' visibility='default' filepath='include/linux/fs.h' line='2066' column='1'/>
+ <var-decl name='release' type-id='47800058' visibility='default' filepath='include/linux/fs.h' line='2072' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='fsync' type-id='31cc9254' visibility='default' filepath='include/linux/fs.h' line='2067' column='1'/>
+ <var-decl name='fsync' type-id='31cc9254' visibility='default' filepath='include/linux/fs.h' line='2073' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='fasync' type-id='b94ac371' visibility='default' filepath='include/linux/fs.h' line='2068' column='1'/>
+ <var-decl name='fasync' type-id='b94ac371' visibility='default' filepath='include/linux/fs.h' line='2074' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='lock' type-id='12f0ff82' visibility='default' filepath='include/linux/fs.h' line='2069' column='1'/>
+ <var-decl name='lock' type-id='12f0ff82' visibility='default' filepath='include/linux/fs.h' line='2075' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='sendpage' type-id='40da47a8' visibility='default' filepath='include/linux/fs.h' line='2070' column='1'/>
+ <var-decl name='sendpage' type-id='40da47a8' visibility='default' filepath='include/linux/fs.h' line='2076' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='get_unmapped_area' type-id='d44a8cec' visibility='default' filepath='include/linux/fs.h' line='2071' column='1'/>
+ <var-decl name='get_unmapped_area' type-id='d44a8cec' visibility='default' filepath='include/linux/fs.h' line='2077' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='check_flags' type-id='7f416e10' visibility='default' filepath='include/linux/fs.h' line='2072' column='1'/>
+ <var-decl name='check_flags' type-id='7f416e10' visibility='default' filepath='include/linux/fs.h' line='2078' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='flock' type-id='12f0ff82' visibility='default' filepath='include/linux/fs.h' line='2073' column='1'/>
+ <var-decl name='flock' type-id='12f0ff82' visibility='default' filepath='include/linux/fs.h' line='2079' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='splice_write' type-id='b22f4610' visibility='default' filepath='include/linux/fs.h' line='2074' column='1'/>
+ <var-decl name='splice_write' type-id='b22f4610' visibility='default' filepath='include/linux/fs.h' line='2080' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
- <var-decl name='splice_read' type-id='72cd68b0' visibility='default' filepath='include/linux/fs.h' line='2075' column='1'/>
+ <var-decl name='splice_read' type-id='72cd68b0' visibility='default' filepath='include/linux/fs.h' line='2081' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
- <var-decl name='setlease' type-id='87e3d3e2' visibility='default' filepath='include/linux/fs.h' line='2076' column='1'/>
+ <var-decl name='setlease' type-id='87e3d3e2' visibility='default' filepath='include/linux/fs.h' line='2082' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1728'>
- <var-decl name='fallocate' type-id='a53e2328' visibility='default' filepath='include/linux/fs.h' line='2077' column='1'/>
+ <var-decl name='fallocate' type-id='a53e2328' visibility='default' filepath='include/linux/fs.h' line='2083' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1792'>
- <var-decl name='show_fdinfo' type-id='eda08098' visibility='default' filepath='include/linux/fs.h' line='2079' column='1'/>
+ <var-decl name='show_fdinfo' type-id='eda08098' visibility='default' filepath='include/linux/fs.h' line='2085' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1856'>
- <var-decl name='copy_file_range' type-id='d0882d6b' visibility='default' filepath='include/linux/fs.h' line='2083' column='1'/>
+ <var-decl name='copy_file_range' type-id='d0882d6b' visibility='default' filepath='include/linux/fs.h' line='2089' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1920'>
- <var-decl name='remap_file_range' type-id='c1de1086' visibility='default' filepath='include/linux/fs.h' line='2085' column='1'/>
+ <var-decl name='remap_file_range' type-id='c1de1086' visibility='default' filepath='include/linux/fs.h' line='2091' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1984'>
- <var-decl name='fadvise' type-id='31cc9254' visibility='default' filepath='include/linux/fs.h' line='2088' column='1'/>
+ <var-decl name='fadvise' type-id='31cc9254' visibility='default' filepath='include/linux/fs.h' line='2094' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2048'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2090' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2096' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2112'>
- <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2091' column='1'/>
+ <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2097' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2176'>
- <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2092' column='1'/>
+ <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2098' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2240'>
- <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2093' column='1'/>
+ <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2099' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='7e019027'>
@@ -60227,39 +60391,39 @@
<parameter type-id='f0981eeb'/>
<return type-id='95e97e5e'/>
</function-type>
- <class-decl name='cfg80211_wowlan' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3455' column='1' id='80126e32'>
+ <class-decl name='cfg80211_wowlan' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='3487' column='1' id='80126e32'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='any' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
+ <var-decl name='any' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8'>
- <var-decl name='disconnect' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
+ <var-decl name='disconnect' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
- <var-decl name='magic_pkt' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
+ <var-decl name='magic_pkt' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='24'>
- <var-decl name='gtk_rekey_failure' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3456' column='1'/>
+ <var-decl name='gtk_rekey_failure' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3488' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='eap_identity_req' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3457' column='1'/>
+ <var-decl name='eap_identity_req' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3489' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='40'>
- <var-decl name='four_way_handshake' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3457' column='1'/>
+ <var-decl name='four_way_handshake' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3489' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='48'>
- <var-decl name='rfkill_release' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3458' column='1'/>
+ <var-decl name='rfkill_release' type-id='b50a4934' visibility='default' filepath='include/net/cfg80211.h' line='3490' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='patterns' type-id='1ed3660c' visibility='default' filepath='include/net/cfg80211.h' line='3459' column='1'/>
+ <var-decl name='patterns' type-id='1ed3660c' visibility='default' filepath='include/net/cfg80211.h' line='3491' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='tcp' type-id='e0c1c1b8' visibility='default' filepath='include/net/cfg80211.h' line='3460' column='1'/>
+ <var-decl name='tcp' type-id='e0c1c1b8' visibility='default' filepath='include/net/cfg80211.h' line='3492' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3461' column='1'/>
+ <var-decl name='n_patterns' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='3493' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='nd_config' type-id='9e4995c7' visibility='default' filepath='include/net/cfg80211.h' line='3462' column='1'/>
+ <var-decl name='nd_config' type-id='9e4995c7' visibility='default' filepath='include/net/cfg80211.h' line='3494' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='d430d6a9' size-in-bits='64' id='801bfa75'/>
@@ -60829,6 +60993,11 @@
<parameter type-id='9e99ecc1'/>
<return type-id='48b5725f'/>
</function-type>
+ <function-type size-in-bits='64' id='80b5c3cd'>
+ <parameter type-id='42c8f564'/>
+ <parameter type-id='eaa32e2f'/>
+ <return type-id='48b5725f'/>
+ </function-type>
<class-decl name='nf_conntrack_tuple_hash' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='119' column='1' id='80b664d7'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='hnnode' type-id='5bd248e7' visibility='default' filepath='include/net/netfilter/nf_conntrack_tuple.h' line='120' column='1'/>
@@ -61592,7 +61761,7 @@
<parameter type-id='7b4ee155'/>
<return type-id='95e97e5e'/>
</function-type>
- <enum-decl name='hid_battery_status' filepath='include/linux/hid.h' line='547' column='1' id='82d56eba'>
+ <enum-decl name='hid_battery_status' filepath='include/linux/hid.h' line='548' column='1' id='82d56eba'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='HID_BATTERY_UNKNOWN' value='0'/>
<enumerator name='HID_BATTERY_QUERIED' value='1'/>
@@ -63417,7 +63586,7 @@
</array-type-def>
<pointer-type-def type-id='ceff8680' size-in-bits='64' id='8640fd9e'/>
<pointer-type-def type-id='b2d59d2a' size-in-bits='64' id='86462700'/>
- <enum-decl name='nl80211_iftype' filepath='include/uapi/linux/nl80211.h' line='3402' column='1' id='86505f90'>
+ <enum-decl name='nl80211_iftype' filepath='include/uapi/linux/nl80211.h' line='3427' column='1' id='86505f90'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='NL80211_IFTYPE_UNSPECIFIED' value='0'/>
<enumerator name='NL80211_IFTYPE_ADHOC' value='1'/>
@@ -63761,93 +63930,93 @@
<parameter type-id='231422bf'/>
<return type-id='95e97e5e'/>
</function-type>
- <class-decl name='super_operations' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2183' column='1' id='874691ab'>
+ <class-decl name='super_operations' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2189' column='1' id='874691ab'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='alloc_inode' type-id='e8c4dba4' visibility='default' filepath='include/linux/fs.h' line='2184' column='1'/>
+ <var-decl name='alloc_inode' type-id='e8c4dba4' visibility='default' filepath='include/linux/fs.h' line='2190' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='destroy_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2185' column='1'/>
+ <var-decl name='destroy_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2191' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='free_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2186' column='1'/>
+ <var-decl name='free_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2192' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='dirty_inode' type-id='5f5506f6' visibility='default' filepath='include/linux/fs.h' line='2188' column='1'/>
+ <var-decl name='dirty_inode' type-id='5f5506f6' visibility='default' filepath='include/linux/fs.h' line='2194' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='write_inode' type-id='fd780be6' visibility='default' filepath='include/linux/fs.h' line='2189' column='1'/>
+ <var-decl name='write_inode' type-id='fd780be6' visibility='default' filepath='include/linux/fs.h' line='2195' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='drop_inode' type-id='28ba4492' visibility='default' filepath='include/linux/fs.h' line='2190' column='1'/>
+ <var-decl name='drop_inode' type-id='28ba4492' visibility='default' filepath='include/linux/fs.h' line='2196' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='evict_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2191' column='1'/>
+ <var-decl name='evict_inode' type-id='4f3d95df' visibility='default' filepath='include/linux/fs.h' line='2197' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='put_super' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2192' column='1'/>
+ <var-decl name='put_super' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2198' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='sync_fs' type-id='dcab5203' visibility='default' filepath='include/linux/fs.h' line='2193' column='1'/>
+ <var-decl name='sync_fs' type-id='dcab5203' visibility='default' filepath='include/linux/fs.h' line='2199' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='freeze_super' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2194' column='1'/>
+ <var-decl name='freeze_super' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2200' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='freeze_fs' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2195' column='1'/>
+ <var-decl name='freeze_fs' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2201' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='thaw_super' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2196' column='1'/>
+ <var-decl name='thaw_super' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2202' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='unfreeze_fs' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2197' column='1'/>
+ <var-decl name='unfreeze_fs' type-id='d2f4c704' visibility='default' filepath='include/linux/fs.h' line='2203' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='statfs' type-id='35646c79' visibility='default' filepath='include/linux/fs.h' line='2198' column='1'/>
+ <var-decl name='statfs' type-id='35646c79' visibility='default' filepath='include/linux/fs.h' line='2204' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='remount_fs' type-id='552c8f87' visibility='default' filepath='include/linux/fs.h' line='2199' column='1'/>
+ <var-decl name='remount_fs' type-id='552c8f87' visibility='default' filepath='include/linux/fs.h' line='2205' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='umount_begin' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2200' column='1'/>
+ <var-decl name='umount_begin' type-id='1ff54a45' visibility='default' filepath='include/linux/fs.h' line='2206' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='show_options' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2202' column='1'/>
+ <var-decl name='show_options' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2208' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='show_devname' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2203' column='1'/>
+ <var-decl name='show_devname' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2209' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='show_path' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2204' column='1'/>
+ <var-decl name='show_path' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2210' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='show_stats' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2205' column='1'/>
+ <var-decl name='show_stats' type-id='c94f6b13' visibility='default' filepath='include/linux/fs.h' line='2211' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='quota_read' type-id='e295c77c' visibility='default' filepath='include/linux/fs.h' line='2207' column='1'/>
+ <var-decl name='quota_read' type-id='e295c77c' visibility='default' filepath='include/linux/fs.h' line='2213' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='quota_write' type-id='a9b95107' visibility='default' filepath='include/linux/fs.h' line='2208' column='1'/>
+ <var-decl name='quota_write' type-id='a9b95107' visibility='default' filepath='include/linux/fs.h' line='2214' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='get_dquots' type-id='ae02292a' visibility='default' filepath='include/linux/fs.h' line='2209' column='1'/>
+ <var-decl name='get_dquots' type-id='ae02292a' visibility='default' filepath='include/linux/fs.h' line='2215' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='nr_cached_objects' type-id='c4facf61' visibility='default' filepath='include/linux/fs.h' line='2211' column='1'/>
+ <var-decl name='nr_cached_objects' type-id='c4facf61' visibility='default' filepath='include/linux/fs.h' line='2217' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='free_cached_objects' type-id='c4facf61' visibility='default' filepath='include/linux/fs.h' line='2213' column='1'/>
+ <var-decl name='free_cached_objects' type-id='c4facf61' visibility='default' filepath='include/linux/fs.h' line='2219' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2216' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2222' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
- <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2217' column='1'/>
+ <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2223' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1728'>
- <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2218' column='1'/>
+ <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2224' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1792'>
- <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2219' column='1'/>
+ <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='2225' column='1'/>
</data-member>
</class-decl>
<qualified-type-def type-id='b1fadf8a' const='yes' id='87538745'/>
@@ -64316,18 +64485,18 @@
<parameter type-id='eaa32e2f'/>
<return type-id='95e97e5e'/>
</function-type>
- <class-decl name='bpf_line_info' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='6174' column='1' id='88565f1f'>
+ <class-decl name='bpf_line_info' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='6186' column='1' id='88565f1f'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='insn_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6175' column='1'/>
+ <var-decl name='insn_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6187' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='file_name_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6176' column='1'/>
+ <var-decl name='file_name_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6188' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='line_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6177' column='1'/>
+ <var-decl name='line_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6189' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='line_col' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6178' column='1'/>
+ <var-decl name='line_col' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6190' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='8858d1a7'>
@@ -64621,18 +64790,18 @@
<pointer-type-def type-id='dfe1421c' size-in-bits='64' id='890a78ae'/>
<pointer-type-def type-id='8ffe5745' size-in-bits='64' id='890caaa5'/>
<pointer-type-def type-id='2376c3ec' size-in-bits='64' id='8912440a'/>
- <class-decl name='bpf_link_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5609' column='1' id='891a6859'>
+ <class-decl name='bpf_link_info' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5621' column='1' id='891a6859'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5610' column='1'/>
+ <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5622' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5611' column='1'/>
+ <var-decl name='id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5623' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5612' column='1'/>
+ <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5624' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='' type-id='ac5ab695' visibility='default' filepath='include/uapi/linux/bpf.h' line='5613' column='1'/>
+ <var-decl name='' type-id='ac5ab695' visibility='default' filepath='include/uapi/linux/bpf.h' line='5625' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='891c6957'>
@@ -64667,15 +64836,15 @@
<array-type-def dimensions='1' type-id='9b45d938' size-in-bits='136' id='8945ea40'>
<subrange length='17' type-id='7ff19f0f' id='888ad0ed'/>
</array-type-def>
- <class-decl name='cfg80211_sar_capa' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2097' column='1' id='894e3904'>
+ <class-decl name='cfg80211_sar_capa' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='2129' column='1' id='894e3904'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='type' type-id='8b4863ac' visibility='default' filepath='include/net/cfg80211.h' line='2098' column='1'/>
+ <var-decl name='type' type-id='8b4863ac' visibility='default' filepath='include/net/cfg80211.h' line='2130' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='num_freq_ranges' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2099' column='1'/>
+ <var-decl name='num_freq_ranges' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='2131' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='freq_ranges' type-id='be875ce1' visibility='default' filepath='include/net/cfg80211.h' line='2100' column='1'/>
+ <var-decl name='freq_ranges' type-id='be875ce1' visibility='default' filepath='include/net/cfg80211.h' line='2132' column='1'/>
</data-member>
</class-decl>
<enum-decl name='iio_shared_by' filepath='include/linux/iio/iio.h' line='20' column='1' id='89575fbb'>
@@ -64974,12 +65143,12 @@
<return type-id='95e97e5e'/>
</function-type>
<pointer-type-def type-id='149c6638' size-in-bits='64' id='8a121f49'/>
- <class-decl name='bpf_func_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='6166' column='1' id='8a1373a3'>
+ <class-decl name='bpf_func_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='6178' column='1' id='8a1373a3'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='insn_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6167' column='1'/>
+ <var-decl name='insn_off' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6179' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6168' column='1'/>
+ <var-decl name='type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='6180' column='1'/>
</data-member>
</class-decl>
<class-decl name='snd_device_ops' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/sound/core.h' line='62' column='1' id='8a1bdab0'>
@@ -65524,7 +65693,7 @@
<return type-id='b50a4934'/>
</function-type>
<pointer-type-def type-id='31e0f35d' size-in-bits='64' id='8b42c33d'/>
- <enum-decl name='nl80211_sar_type' filepath='include/uapi/linux/nl80211.h' line='7636' column='1' id='8b4863ac'>
+ <enum-decl name='nl80211_sar_type' filepath='include/uapi/linux/nl80211.h' line='7667' column='1' id='8b4863ac'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='NL80211_SAR_TYPE_POWER' value='0'/>
<enumerator name='NUM_NL80211_SAR_TYPE' value='1'/>
@@ -65537,24 +65706,24 @@
<enumerator name='V4L2_PRIORITY_RECORD' value='3'/>
<enumerator name='V4L2_PRIORITY_DEFAULT' value='2'/>
</enum-decl>
- <class-decl name='sched_group' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='1857' column='1' id='8b6491f4'>
+ <class-decl name='sched_group' size-in-bits='256' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='1856' column='1' id='8b6491f4'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='next' type-id='f3dcd492' visibility='default' filepath='kernel/sched/sched.h' line='1858' column='1'/>
+ <var-decl name='next' type-id='f3dcd492' visibility='default' filepath='kernel/sched/sched.h' line='1857' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='ref' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='1859' column='1'/>
+ <var-decl name='ref' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='1858' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='group_weight' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1861' column='1'/>
+ <var-decl name='group_weight' type-id='f0981eeb' visibility='default' filepath='kernel/sched/sched.h' line='1860' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='sgc' type-id='29a48d3d' visibility='default' filepath='kernel/sched/sched.h' line='1862' column='1'/>
+ <var-decl name='sgc' type-id='29a48d3d' visibility='default' filepath='kernel/sched/sched.h' line='1861' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='asym_prefer_cpu' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1863' column='1'/>
+ <var-decl name='asym_prefer_cpu' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1862' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='cpumask' type-id='c99b5ecd' visibility='default' filepath='kernel/sched/sched.h' line='1872' column='1'/>
+ <var-decl name='cpumask' type-id='c99b5ecd' visibility='default' filepath='kernel/sched/sched.h' line='1871' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='8b66a21e'>
@@ -67017,63 +67186,63 @@
<var-decl name='user' type-id='70734f24' visibility='default' filepath='include/uapi/linux/xfrm.h' line='61' column='1'/>
</data-member>
</class-decl>
- <union-decl name='bpf_attr' size-in-bits='1024' visibility='default' filepath='include/uapi/linux/bpf.h' line='1255' column='1' id='8eb8eec2'>
+ <union-decl name='bpf_attr' size-in-bits='1024' visibility='default' filepath='include/uapi/linux/bpf.h' line='1267' column='1' id='8eb8eec2'>
<data-member access='public'>
- <var-decl name='' type-id='e7f4402b' visibility='default' filepath='include/uapi/linux/bpf.h' line='1256' column='1'/>
+ <var-decl name='' type-id='e7f4402b' visibility='default' filepath='include/uapi/linux/bpf.h' line='1268' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='' type-id='e7f4402c' visibility='default' filepath='include/uapi/linux/bpf.h' line='1279' column='1'/>
+ <var-decl name='' type-id='e7f4402c' visibility='default' filepath='include/uapi/linux/bpf.h' line='1291' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='batch' type-id='e7f4402d' visibility='default' filepath='include/uapi/linux/bpf.h' line='1304' column='1'/>
+ <var-decl name='batch' type-id='e7f4402d' visibility='default' filepath='include/uapi/linux/bpf.h' line='1316' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='' type-id='e7f4402e' visibility='default' filepath='include/uapi/linux/bpf.h' line='1306' column='1'/>
+ <var-decl name='' type-id='e7f4402e' visibility='default' filepath='include/uapi/linux/bpf.h' line='1318' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='' type-id='e7f4402f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1341' column='1'/>
+ <var-decl name='' type-id='e7f4402f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1353' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='' type-id='e7f44030' visibility='default' filepath='include/uapi/linux/bpf.h' line='1347' column='1'/>
+ <var-decl name='' type-id='e7f44030' visibility='default' filepath='include/uapi/linux/bpf.h' line='1359' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='test' type-id='e7f44031' visibility='default' filepath='include/uapi/linux/bpf.h' line='1379' column='1'/>
+ <var-decl name='test' type-id='e7f44031' visibility='default' filepath='include/uapi/linux/bpf.h' line='1391' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='' type-id='e7f44032' visibility='default' filepath='include/uapi/linux/bpf.h' line='1381' column='1'/>
+ <var-decl name='' type-id='e7f44032' visibility='default' filepath='include/uapi/linux/bpf.h' line='1393' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='info' type-id='e7f44033' visibility='default' filepath='include/uapi/linux/bpf.h' line='1397' column='1'/>
+ <var-decl name='info' type-id='e7f44033' visibility='default' filepath='include/uapi/linux/bpf.h' line='1409' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='query' type-id='e7f44034' visibility='default' filepath='include/uapi/linux/bpf.h' line='1406' column='1'/>
+ <var-decl name='query' type-id='e7f44034' visibility='default' filepath='include/uapi/linux/bpf.h' line='1418' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='raw_tracepoint' type-id='e7f44035' visibility='default' filepath='include/uapi/linux/bpf.h' line='1411' column='1'/>
+ <var-decl name='raw_tracepoint' type-id='e7f44035' visibility='default' filepath='include/uapi/linux/bpf.h' line='1423' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='' type-id='e7f44036' visibility='default' filepath='include/uapi/linux/bpf.h' line='1413' column='1'/>
+ <var-decl name='' type-id='e7f44036' visibility='default' filepath='include/uapi/linux/bpf.h' line='1425' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='task_fd_query' type-id='e7f44037' visibility='default' filepath='include/uapi/linux/bpf.h' line='1435' column='1'/>
+ <var-decl name='task_fd_query' type-id='e7f44037' visibility='default' filepath='include/uapi/linux/bpf.h' line='1447' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='link_create' type-id='e7f44038' visibility='default' filepath='include/uapi/linux/bpf.h' line='1459' column='1'/>
+ <var-decl name='link_create' type-id='e7f44038' visibility='default' filepath='include/uapi/linux/bpf.h' line='1471' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='link_update' type-id='e7f44039' visibility='default' filepath='include/uapi/linux/bpf.h' line='1469' column='1'/>
+ <var-decl name='link_update' type-id='e7f44039' visibility='default' filepath='include/uapi/linux/bpf.h' line='1481' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='link_detach' type-id='e7f4403a' visibility='default' filepath='include/uapi/linux/bpf.h' line='1473' column='1'/>
+ <var-decl name='link_detach' type-id='e7f4403a' visibility='default' filepath='include/uapi/linux/bpf.h' line='1485' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='enable_stats' type-id='e7f4403b' visibility='default' filepath='include/uapi/linux/bpf.h' line='1477' column='1'/>
+ <var-decl name='enable_stats' type-id='e7f4403b' visibility='default' filepath='include/uapi/linux/bpf.h' line='1489' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='iter_create' type-id='e7f4403c' visibility='default' filepath='include/uapi/linux/bpf.h' line='1482' column='1'/>
+ <var-decl name='iter_create' type-id='e7f4403c' visibility='default' filepath='include/uapi/linux/bpf.h' line='1494' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='prog_bind_map' type-id='e7f4403d' visibility='default' filepath='include/uapi/linux/bpf.h' line='1488' column='1'/>
+ <var-decl name='prog_bind_map' type-id='e7f4403d' visibility='default' filepath='include/uapi/linux/bpf.h' line='1500' column='1'/>
</data-member>
</union-decl>
<pointer-type-def type-id='de10cebd' size-in-bits='64' id='8eba4549'/>
@@ -68677,12 +68846,12 @@
<return type-id='95e97e5e'/>
</function-type>
<pointer-type-def type-id='7dac1e36' size-in-bits='64' id='91b10e59'/>
- <class-decl name='in6_pktinfo' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='21' column='1' id='91b426fc'>
+ <class-decl name='in6_pktinfo' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/uapi/linux/ipv6.h' line='22' column='1' id='91b426fc'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ipi6_addr' type-id='f6ed712a' visibility='default' filepath='include/uapi/linux/ipv6.h' line='22' column='1'/>
+ <var-decl name='ipi6_addr' type-id='f6ed712a' visibility='default' filepath='include/uapi/linux/ipv6.h' line='23' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='ipi6_ifindex' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/ipv6.h' line='23' column='1'/>
+ <var-decl name='ipi6_ifindex' type-id='95e97e5e' visibility='default' filepath='include/uapi/linux/ipv6.h' line='24' column='1'/>
</data-member>
</class-decl>
<typedef-decl name='u64' type-id='d3130597' filepath='include/asm-generic/int-ll64.h' line='23' column='1' id='91ce1af9'/>
@@ -70191,7 +70360,7 @@
</function-type>
<qualified-type-def type-id='1c4048ae' const='yes' id='95be97f3'/>
<qualified-type-def type-id='1740bab9' const='yes' id='95d0d4e8'/>
- <enum-decl name='nl80211_bss_scan_width' filepath='include/uapi/linux/nl80211.h' line='4948' column='1' id='95d46034'>
+ <enum-decl name='nl80211_bss_scan_width' filepath='include/uapi/linux/nl80211.h' line='4973' column='1' id='95d46034'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='NL80211_BSS_CHAN_WIDTH_20' value='0'/>
<enumerator name='NL80211_BSS_CHAN_WIDTH_10' value='1'/>
@@ -71640,7 +71809,7 @@
<parameter type-id='b50a4934'/>
<return type-id='48b5725f'/>
</function-type>
- <enum-decl name='nl80211_dfs_state' filepath='include/uapi/linux/nl80211.h' line='6642' column='1' id='996e1634'>
+ <enum-decl name='nl80211_dfs_state' filepath='include/uapi/linux/nl80211.h' line='6673' column='1' id='996e1634'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='NL80211_DFS_USABLE' value='0'/>
<enumerator name='NL80211_DFS_UNAVAILABLE' value='1'/>
@@ -74004,33 +74173,33 @@
<var-decl name='is_kernel' type-id='b50a4934' visibility='default' filepath='include/linux/sockptr.h' line='19' column='1'/>
</data-member>
</class-decl>
- <class-decl name='hid_report' size-in-bits='16896' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='485' column='1' id='9ea68709'>
+ <class-decl name='hid_report' size-in-bits='16896' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='486' column='1' id='9ea68709'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='486' column='1'/>
+ <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='487' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='hidinput_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='487' column='1'/>
+ <var-decl name='hidinput_list' type-id='72f469ec' visibility='default' filepath='include/linux/hid.h' line='488' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='488' column='1'/>
+ <var-decl name='id' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='489' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='288'>
- <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='489' column='1'/>
+ <var-decl name='type' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='490' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='490' column='1'/>
+ <var-decl name='application' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='491' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='field' type-id='b5f2d796' visibility='default' filepath='include/linux/hid.h' line='491' column='1'/>
+ <var-decl name='field' type-id='b5f2d796' visibility='default' filepath='include/linux/hid.h' line='492' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16768'>
- <var-decl name='maxfield' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='492' column='1'/>
+ <var-decl name='maxfield' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='493' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16800'>
- <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='493' column='1'/>
+ <var-decl name='size' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='494' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16832'>
- <var-decl name='device' type-id='37175e4d' visibility='default' filepath='include/linux/hid.h' line='494' column='1'/>
+ <var-decl name='device' type-id='37175e4d' visibility='default' filepath='include/linux/hid.h' line='495' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='9ea75344'>
@@ -79501,6 +79670,12 @@
<parameter type-id='89a8217c'/>
<return type-id='95e97e5e'/>
</function-type>
+ <function-type size-in-bits='64' id='ab474fe7'>
+ <parameter type-id='f8dc9def'/>
+ <parameter type-id='3213e875'/>
+ <parameter type-id='95e97e5e'/>
+ <return type-id='91ce1af9'/>
+ </function-type>
<class-decl name='ufs_clk_scaling' size-in-bits='1792' is-struct='yes' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='441' column='1' id='ab4dad02'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='active_reqs' type-id='95e97e5e' visibility='default' filepath='drivers/scsi/ufs/ufshcd.h' line='442' column='1'/>
@@ -82442,56 +82617,56 @@
<var-decl name='smc_hash' type-id='aa8162a3' visibility='default' filepath='include/net/sock.h' line='1291' column='1'/>
</data-member>
</union-decl>
- <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1282' column='1' id='ac5ab67f'>
+ <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1294' column='1' id='ac5ab67f'>
<data-member access='public'>
- <var-decl name='value' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1283' column='1'/>
+ <var-decl name='value' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1295' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='next_key' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1284' column='1'/>
+ <var-decl name='next_key' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1296' column='1'/>
</data-member>
</union-decl>
- <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1331' column='1' id='ac5ab680'>
+ <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1343' column='1' id='ac5ab680'>
<data-member access='public'>
- <var-decl name='attach_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1333' column='1'/>
+ <var-decl name='attach_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1345' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='attach_btf_obj_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1335' column='1'/>
+ <var-decl name='attach_btf_obj_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1347' column='1'/>
</data-member>
</union-decl>
- <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1382' column='1' id='ac5ab681'>
+ <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1394' column='1' id='ac5ab681'>
<data-member access='public'>
- <var-decl name='start_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1383' column='1'/>
+ <var-decl name='start_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1395' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1384' column='1'/>
+ <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1396' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='map_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1385' column='1'/>
+ <var-decl name='map_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1397' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1386' column='1'/>
+ <var-decl name='btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1398' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='link_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1387' column='1'/>
+ <var-decl name='link_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1399' column='1'/>
</data-member>
</union-decl>
- <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1439' column='1' id='ac5ab682'>
+ <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1451' column='1' id='ac5ab682'>
<data-member access='public'>
- <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1440' column='1'/>
+ <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1452' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='target_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1441' column='1'/>
+ <var-decl name='target_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1453' column='1'/>
</data-member>
</union-decl>
- <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1445' column='1' id='ac5ab683'>
+ <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1457' column='1' id='ac5ab683'>
<data-member access='public'>
- <var-decl name='target_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1446' column='1'/>
+ <var-decl name='target_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1458' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='' type-id='e7f4403e' visibility='default' filepath='include/uapi/linux/bpf.h' line='1447' column='1'/>
+ <var-decl name='' type-id='e7f4403e' visibility='default' filepath='include/uapi/linux/bpf.h' line='1459' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='perf_event' type-id='e7f4403f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1457' column='1'/>
+ <var-decl name='perf_event' type-id='e7f4403f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1469' column='1'/>
</data-member>
</union-decl>
<union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/if.h' line='210' column='1' id='ac5ab684'>
@@ -82574,21 +82749,21 @@
<var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/btf.h' line='51' column='1'/>
</data-member>
</union-decl>
- <union-decl name='__anonymous_union__' size-in-bits='1920' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6101' column='1' id='ac5ab688'>
+ <union-decl name='__anonymous_union__' size-in-bits='1920' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6156' column='1' id='ac5ab688'>
<data-member access='public'>
- <var-decl name='client' type-id='e7f44075' visibility='default' filepath='include/net/cfg80211.h' line='6106' column='1'/>
+ <var-decl name='client' type-id='e7f44075' visibility='default' filepath='include/net/cfg80211.h' line='6161' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='mesh' type-id='e7f44076' visibility='default' filepath='include/net/cfg80211.h' line='6113' column='1'/>
+ <var-decl name='mesh' type-id='e7f44076' visibility='default' filepath='include/net/cfg80211.h' line='6168' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='ap' type-id='e7f44077' visibility='default' filepath='include/net/cfg80211.h' line='6118' column='1'/>
+ <var-decl name='ap' type-id='e7f44077' visibility='default' filepath='include/net/cfg80211.h' line='6173' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='ibss' type-id='e7f44078' visibility='default' filepath='include/net/cfg80211.h' line='6125' column='1'/>
+ <var-decl name='ibss' type-id='e7f44078' visibility='default' filepath='include/net/cfg80211.h' line='6180' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='ocb' type-id='e7f44079' visibility='default' filepath='include/net/cfg80211.h' line='6128' column='1'/>
+ <var-decl name='ocb' type-id='e7f44079' visibility='default' filepath='include/net/cfg80211.h' line='6183' column='1'/>
</data-member>
</union-decl>
<union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/xfrm.h' line='157' column='1' id='ac5ab689'>
@@ -82705,29 +82880,29 @@
<var-decl name='e_gid' type-id='094d8048' visibility='default' filepath='include/linux/posix_acl.h' line='25' column='1'/>
</data-member>
</union-decl>
- <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5613' column='1' id='ac5ab695'>
+ <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5625' column='1' id='ac5ab695'>
<data-member access='public'>
- <var-decl name='raw_tracepoint' type-id='e7f44048' visibility='default' filepath='include/uapi/linux/bpf.h' line='5617' column='1'/>
+ <var-decl name='raw_tracepoint' type-id='e7f44048' visibility='default' filepath='include/uapi/linux/bpf.h' line='5629' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='tracing' type-id='e7f44049' visibility='default' filepath='include/uapi/linux/bpf.h' line='5622' column='1'/>
+ <var-decl name='tracing' type-id='e7f44049' visibility='default' filepath='include/uapi/linux/bpf.h' line='5634' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='cgroup' type-id='e7f4404a' visibility='default' filepath='include/uapi/linux/bpf.h' line='5626' column='1'/>
+ <var-decl name='cgroup' type-id='e7f4404a' visibility='default' filepath='include/uapi/linux/bpf.h' line='5638' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='iter' type-id='e7f4404b' visibility='default' filepath='include/uapi/linux/bpf.h' line='5635' column='1'/>
+ <var-decl name='iter' type-id='e7f4404b' visibility='default' filepath='include/uapi/linux/bpf.h' line='5647' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='netns' type-id='e7f4404c' visibility='default' filepath='include/uapi/linux/bpf.h' line='5639' column='1'/>
+ <var-decl name='netns' type-id='e7f4404c' visibility='default' filepath='include/uapi/linux/bpf.h' line='5651' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='xdp' type-id='e7f4404d' visibility='default' filepath='include/uapi/linux/bpf.h' line='5642' column='1'/>
+ <var-decl name='xdp' type-id='e7f4404d' visibility='default' filepath='include/uapi/linux/bpf.h' line='5654' column='1'/>
</data-member>
</union-decl>
- <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5630' column='1' id='ac5ab696'>
+ <union-decl name='__anonymous_union__' size-in-bits='32' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5642' column='1' id='ac5ab696'>
<data-member access='public'>
- <var-decl name='map' type-id='e7f4404e' visibility='default' filepath='include/uapi/linux/bpf.h' line='5633' column='1'/>
+ <var-decl name='map' type-id='e7f4404e' visibility='default' filepath='include/uapi/linux/bpf.h' line='5645' column='1'/>
</data-member>
</union-decl>
<union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/linux/igmp.h' line='74' column='1' id='ac5ab697'>
@@ -82900,23 +83075,23 @@
<var-decl name='bw' type-id='e7f44070' visibility='default' filepath='include/net/cfg80211.h' line='390' column='1'/>
</data-member>
</union-decl>
- <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1' id='ac5ab6a4'>
+ <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1' id='ac5ab6a4'>
<data-member access='public'>
- <var-decl name='backport' type-id='040fcd9e' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1'/>
+ <var-decl name='backport' type-id='040fcd9e' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='' type-id='e7f44074' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1'/>
+ <var-decl name='' type-id='e7f44074' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='' type-id='ac5ab606' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1'/>
+ <var-decl name='' type-id='ac5ab606' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
</data-member>
</union-decl>
- <union-decl name='__anonymous_union__' size-in-bits='832' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6133' column='1' id='ac5ab6a5'>
+ <union-decl name='__anonymous_union__' size-in-bits='832' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6188' column='1' id='ac5ab6a5'>
<data-member access='public'>
- <var-decl name='ap' type-id='e7f4407a' visibility='default' filepath='include/net/cfg80211.h' line='6137' column='1'/>
+ <var-decl name='ap' type-id='e7f4407a' visibility='default' filepath='include/net/cfg80211.h' line='6192' column='1'/>
</data-member>
<data-member access='public'>
- <var-decl name='client' type-id='e7f4407b' visibility='default' filepath='include/net/cfg80211.h' line='6140' column='1'/>
+ <var-decl name='client' type-id='e7f4407b' visibility='default' filepath='include/net/cfg80211.h' line='6195' column='1'/>
</data-member>
</union-decl>
<union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='include/net/xfrm.h' line='1408' column='1' id='ac5ab6a6'>
@@ -84865,7 +85040,7 @@
<parameter type-id='f9409001'/>
<return type-id='95e97e5e'/>
</function-type>
- <enum-decl name='bpf_link_type' filepath='include/uapi/linux/bpf.h' line='1002' column='1' id='b0467036'>
+ <enum-decl name='bpf_link_type' filepath='include/uapi/linux/bpf.h' line='1014' column='1' id='b0467036'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='BPF_LINK_TYPE_UNSPEC' value='0'/>
<enumerator name='BPF_LINK_TYPE_RAW_TRACEPOINT' value='1'/>
@@ -85544,108 +85719,108 @@
<pointer-type-def type-id='1af55526' size-in-bits='64' id='b201adb8'/>
<pointer-type-def type-id='0cdc58b8' size-in-bits='64' id='b20461b2'/>
<pointer-type-def type-id='6c99ab8f' size-in-bits='64' id='b20722ab'/>
- <class-decl name='urb' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1589' column='1' id='b209b4e4'>
+ <class-decl name='urb' size-in-bits='1728' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1592' column='1' id='b209b4e4'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/usb.h' line='1591' column='1'/>
+ <var-decl name='kref' type-id='400fb07b' visibility='default' filepath='include/linux/usb.h' line='1594' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='unlinked' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1592' column='1'/>
+ <var-decl name='unlinked' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1595' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='hcpriv' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1593' column='1'/>
+ <var-decl name='hcpriv' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1596' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='use_count' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1594' column='1'/>
+ <var-decl name='use_count' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1597' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='reject' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1595' column='1'/>
+ <var-decl name='reject' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1598' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='urb_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1598' column='1'/>
+ <var-decl name='urb_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1601' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='anchor_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1600' column='1'/>
+ <var-decl name='anchor_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1603' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='anchor' type-id='bd300bf3' visibility='default' filepath='include/linux/usb.h' line='1601' column='1'/>
+ <var-decl name='anchor' type-id='bd300bf3' visibility='default' filepath='include/linux/usb.h' line='1604' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='1602' column='1'/>
+ <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='1605' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='ep' type-id='15adb516' visibility='default' filepath='include/linux/usb.h' line='1603' column='1'/>
+ <var-decl name='ep' type-id='15adb516' visibility='default' filepath='include/linux/usb.h' line='1606' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='pipe' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1604' column='1'/>
+ <var-decl name='pipe' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1607' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='672'>
- <var-decl name='stream_id' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1605' column='1'/>
+ <var-decl name='stream_id' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1608' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1606' column='1'/>
+ <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1609' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='736'>
- <var-decl name='transfer_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1607' column='1'/>
+ <var-decl name='transfer_flags' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1610' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='transfer_buffer' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1608' column='1'/>
+ <var-decl name='transfer_buffer' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1611' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='transfer_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/usb.h' line='1609' column='1'/>
+ <var-decl name='transfer_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/usb.h' line='1612' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='sg' type-id='bf3ef905' visibility='default' filepath='include/linux/usb.h' line='1610' column='1'/>
+ <var-decl name='sg' type-id='bf3ef905' visibility='default' filepath='include/linux/usb.h' line='1613' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='num_mapped_sgs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1611' column='1'/>
+ <var-decl name='num_mapped_sgs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1614' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='992'>
- <var-decl name='num_sgs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1612' column='1'/>
+ <var-decl name='num_sgs' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1615' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='transfer_buffer_length' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='1613' column='1'/>
+ <var-decl name='transfer_buffer_length' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='1616' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1056'>
- <var-decl name='actual_length' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='1614' column='1'/>
+ <var-decl name='actual_length' type-id='19c2251e' visibility='default' filepath='include/linux/usb.h' line='1617' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='setup_packet' type-id='cf536864' visibility='default' filepath='include/linux/usb.h' line='1615' column='1'/>
+ <var-decl name='setup_packet' type-id='cf536864' visibility='default' filepath='include/linux/usb.h' line='1618' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='setup_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/usb.h' line='1616' column='1'/>
+ <var-decl name='setup_dma' type-id='cf29c9b3' visibility='default' filepath='include/linux/usb.h' line='1619' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1216'>
- <var-decl name='start_frame' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1617' column='1'/>
+ <var-decl name='start_frame' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1620' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1248'>
- <var-decl name='number_of_packets' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1618' column='1'/>
+ <var-decl name='number_of_packets' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1621' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='interval' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1619' column='1'/>
+ <var-decl name='interval' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1622' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1312'>
- <var-decl name='error_count' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1621' column='1'/>
+ <var-decl name='error_count' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1624' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='context' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1622' column='1'/>
+ <var-decl name='context' type-id='eaa32e2f' visibility='default' filepath='include/linux/usb.h' line='1625' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='complete' type-id='4086973b' visibility='default' filepath='include/linux/usb.h' line='1623' column='1'/>
+ <var-decl name='complete' type-id='4086973b' visibility='default' filepath='include/linux/usb.h' line='1626' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1625' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1628' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1626' column='1'/>
+ <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1629' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
- <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1627' column='1'/>
+ <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1630' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
- <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1628' column='1'/>
+ <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/usb.h' line='1631' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1728'>
- <var-decl name='iso_frame_desc' type-id='b585dd30' visibility='default' filepath='include/linux/usb.h' line='1630' column='1'/>
+ <var-decl name='iso_frame_desc' type-id='b585dd30' visibility='default' filepath='include/linux/usb.h' line='1633' column='1'/>
</data-member>
</class-decl>
<qualified-type-def type-id='c4cd9d00' const='yes' id='b20d2281'/>
@@ -85891,6 +86066,7 @@
<parameter type-id='d504f73d'/>
<return type-id='95e97e5e'/>
</function-type>
+ <pointer-type-def type-id='f3a719f4' size-in-bits='64' id='b2ea0a72'/>
<function-type size-in-bits='64' id='b2ea0ff9'>
<parameter type-id='0fbf3cfd'/>
<parameter type-id='3f646ae7'/>
@@ -86301,21 +86477,21 @@
<parameter type-id='031224de'/>
<return type-id='b50a4934'/>
</function-type>
- <class-decl name='usb_anchor' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1388' column='1' id='b3bcc053'>
+ <class-decl name='usb_anchor' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1391' column='1' id='b3bcc053'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='urb_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1389' column='1'/>
+ <var-decl name='urb_list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1392' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/usb.h' line='1390' column='1'/>
+ <var-decl name='wait' type-id='b5ab048f' visibility='default' filepath='include/linux/usb.h' line='1393' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1391' column='1'/>
+ <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1394' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='suspend_wakeups' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1392' column='1'/>
+ <var-decl name='suspend_wakeups' type-id='49178f86' visibility='default' filepath='include/linux/usb.h' line='1395' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='poisoned' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1393' column='1'/>
+ <var-decl name='poisoned' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1396' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='b3bf9ca3'>
@@ -88124,6 +88300,7 @@
<enumerator name='BPF_PROG_TYPE_LSM' value='29'/>
<enumerator name='BPF_PROG_TYPE_SK_LOOKUP' value='30'/>
<enumerator name='BPF_PROG_TYPE_SYSCALL' value='31'/>
+ <enumerator name='BPF_PROG_TYPE_FUSE' value='32'/>
</enum-decl>
<class-decl name='cgroup_bpf' size-in-bits='5888' is-struct='yes' visibility='default' filepath='include/linux/bpf-cgroup.h' line='132' column='1' id='b80e3996'>
<data-member access='public' layout-offset-in-bits='0'>
@@ -88183,7 +88360,7 @@
<var-decl name='cgroup_ns' type-id='f774a955' visibility='default' filepath='include/linux/nsproxy.h' line='40' column='1'/>
</data-member>
</class-decl>
- <enum-decl name='nl80211_user_reg_hint_type' filepath='include/uapi/linux/nl80211.h' line='4464' column='1' id='b833d4ac'>
+ <enum-decl name='nl80211_user_reg_hint_type' filepath='include/uapi/linux/nl80211.h' line='4489' column='1' id='b833d4ac'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='NL80211_USER_REG_HINT_USER' value='0'/>
<enumerator name='NL80211_USER_REG_HINT_CELL_BASE' value='1'/>
@@ -88239,7 +88416,7 @@
<var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/net/psample.h' line='14' column='1'/>
</data-member>
</class-decl>
- <enum-decl name='cfg80211_signal_type' filepath='include/net/cfg80211.h' line='2757' column='1' id='b8524648'>
+ <enum-decl name='cfg80211_signal_type' filepath='include/net/cfg80211.h' line='2789' column='1' id='b8524648'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='CFG80211_SIGNAL_TYPE_NONE' value='0'/>
<enumerator name='CFG80211_SIGNAL_TYPE_MBM' value='1'/>
@@ -89098,18 +89275,18 @@
<var-decl name='mask' type-id='69281b5f' visibility='default' filepath='include/net/flow_offload.h' line='48' column='1'/>
</data-member>
</class-decl>
- <class-decl name='event_subsystem' size-in-bits='320' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1293' column='1' id='ba400603'>
+ <class-decl name='event_subsystem' size-in-bits='320' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='1291' column='1' id='ba400603'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='1294' column='1'/>
+ <var-decl name='list' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='1292' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='1295' column='1'/>
+ <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='1293' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='filter' type-id='26461068' visibility='default' filepath='kernel/trace/trace.h' line='1296' column='1'/>
+ <var-decl name='filter' type-id='26461068' visibility='default' filepath='kernel/trace/trace.h' line='1294' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='ref_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1297' column='1'/>
+ <var-decl name='ref_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='1295' column='1'/>
</data-member>
</class-decl>
<class-decl name='net_device_ops' size-in-bits='5312' is-struct='yes' visibility='default' filepath='include/linux/netdevice.h' line='1386' column='1' id='ba44c7d8'>
@@ -89851,213 +90028,213 @@
</data-member>
</class-decl>
<pointer-type-def type-id='bca91994' size-in-bits='64' id='bc33861a'/>
- <class-decl name='super_block' size-in-bits='12800' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1498' column='1' id='bc39a8be'>
+ <class-decl name='super_block' size-in-bits='12800' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1504' column='1' id='bc39a8be'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='s_list' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1499' column='1'/>
+ <var-decl name='s_list' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1505' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='s_dev' type-id='8504f260' visibility='default' filepath='include/linux/fs.h' line='1500' column='1'/>
+ <var-decl name='s_dev' type-id='8504f260' visibility='default' filepath='include/linux/fs.h' line='1506' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='s_blocksize_bits' type-id='002ac4a6' visibility='default' filepath='include/linux/fs.h' line='1501' column='1'/>
+ <var-decl name='s_blocksize_bits' type-id='002ac4a6' visibility='default' filepath='include/linux/fs.h' line='1507' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='s_blocksize' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1502' column='1'/>
+ <var-decl name='s_blocksize' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1508' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='s_maxbytes' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='1503' column='1'/>
+ <var-decl name='s_maxbytes' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='1509' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='s_type' type-id='21e53d44' visibility='default' filepath='include/linux/fs.h' line='1504' column='1'/>
+ <var-decl name='s_type' type-id='21e53d44' visibility='default' filepath='include/linux/fs.h' line='1510' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='s_op' type-id='f7c6dcac' visibility='default' filepath='include/linux/fs.h' line='1505' column='1'/>
+ <var-decl name='s_op' type-id='f7c6dcac' visibility='default' filepath='include/linux/fs.h' line='1511' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='dq_op' type-id='85741a2a' visibility='default' filepath='include/linux/fs.h' line='1506' column='1'/>
+ <var-decl name='dq_op' type-id='85741a2a' visibility='default' filepath='include/linux/fs.h' line='1512' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='s_qcop' type-id='2cb49514' visibility='default' filepath='include/linux/fs.h' line='1507' column='1'/>
+ <var-decl name='s_qcop' type-id='2cb49514' visibility='default' filepath='include/linux/fs.h' line='1513' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='s_export_op' type-id='ab932c45' visibility='default' filepath='include/linux/fs.h' line='1508' column='1'/>
+ <var-decl name='s_export_op' type-id='ab932c45' visibility='default' filepath='include/linux/fs.h' line='1514' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='s_flags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1509' column='1'/>
+ <var-decl name='s_flags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1515' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='s_iflags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1510' column='1'/>
+ <var-decl name='s_iflags' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1516' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='s_magic' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1511' column='1'/>
+ <var-decl name='s_magic' type-id='7359adad' visibility='default' filepath='include/linux/fs.h' line='1517' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='s_root' type-id='27675065' visibility='default' filepath='include/linux/fs.h' line='1512' column='1'/>
+ <var-decl name='s_root' type-id='27675065' visibility='default' filepath='include/linux/fs.h' line='1518' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='s_umount' type-id='f19fdb93' visibility='default' filepath='include/linux/fs.h' line='1513' column='1'/>
+ <var-decl name='s_umount' type-id='f19fdb93' visibility='default' filepath='include/linux/fs.h' line='1519' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1408'>
- <var-decl name='s_count' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1514' column='1'/>
+ <var-decl name='s_count' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1520' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1440'>
- <var-decl name='s_active' type-id='49178f86' visibility='default' filepath='include/linux/fs.h' line='1515' column='1'/>
+ <var-decl name='s_active' type-id='49178f86' visibility='default' filepath='include/linux/fs.h' line='1521' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='s_security' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1517' column='1'/>
+ <var-decl name='s_security' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1523' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='s_xattr' type-id='cb49d4b8' visibility='default' filepath='include/linux/fs.h' line='1519' column='1'/>
+ <var-decl name='s_xattr' type-id='cb49d4b8' visibility='default' filepath='include/linux/fs.h' line='1525' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
- <var-decl name='s_cop' type-id='8d31a8d6' visibility='default' filepath='include/linux/fs.h' line='1521' column='1'/>
+ <var-decl name='s_cop' type-id='8d31a8d6' visibility='default' filepath='include/linux/fs.h' line='1527' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
- <var-decl name='s_master_keys' type-id='c14b7eb6' visibility='default' filepath='include/linux/fs.h' line='1530' column='1'/>
+ <var-decl name='s_master_keys' type-id='c14b7eb6' visibility='default' filepath='include/linux/fs.h' line='1536' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1728'>
- <var-decl name='s_vop' type-id='e3008443' visibility='default' filepath='include/linux/fs.h' line='1534' column='1'/>
+ <var-decl name='s_vop' type-id='e3008443' visibility='default' filepath='include/linux/fs.h' line='1540' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1792'>
- <var-decl name='s_encoding' type-id='72835629' visibility='default' filepath='include/linux/fs.h' line='1537' column='1'/>
+ <var-decl name='s_encoding' type-id='72835629' visibility='default' filepath='include/linux/fs.h' line='1543' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1856'>
- <var-decl name='s_encoding_flags' type-id='d315442e' visibility='default' filepath='include/linux/fs.h' line='1538' column='1'/>
+ <var-decl name='s_encoding_flags' type-id='d315442e' visibility='default' filepath='include/linux/fs.h' line='1544' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1920'>
- <var-decl name='s_roots' type-id='def98e71' visibility='default' filepath='include/linux/fs.h' line='1540' column='1'/>
+ <var-decl name='s_roots' type-id='def98e71' visibility='default' filepath='include/linux/fs.h' line='1546' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1984'>
- <var-decl name='s_mounts' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1541' column='1'/>
+ <var-decl name='s_mounts' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1547' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2112'>
- <var-decl name='s_bdev' type-id='b88dd945' visibility='default' filepath='include/linux/fs.h' line='1542' column='1'/>
+ <var-decl name='s_bdev' type-id='b88dd945' visibility='default' filepath='include/linux/fs.h' line='1548' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2176'>
- <var-decl name='s_bdi' type-id='ef4fae1b' visibility='default' filepath='include/linux/fs.h' line='1543' column='1'/>
+ <var-decl name='s_bdi' type-id='ef4fae1b' visibility='default' filepath='include/linux/fs.h' line='1549' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2240'>
- <var-decl name='s_mtd' type-id='58ed56f5' visibility='default' filepath='include/linux/fs.h' line='1544' column='1'/>
+ <var-decl name='s_mtd' type-id='58ed56f5' visibility='default' filepath='include/linux/fs.h' line='1550' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2304'>
- <var-decl name='s_instances' type-id='03a4a074' visibility='default' filepath='include/linux/fs.h' line='1545' column='1'/>
+ <var-decl name='s_instances' type-id='03a4a074' visibility='default' filepath='include/linux/fs.h' line='1551' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2432'>
- <var-decl name='s_quota_types' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1546' column='1'/>
+ <var-decl name='s_quota_types' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1552' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2496'>
- <var-decl name='s_dquot' type-id='c26e4ad8' visibility='default' filepath='include/linux/fs.h' line='1547' column='1'/>
+ <var-decl name='s_dquot' type-id='c26e4ad8' visibility='default' filepath='include/linux/fs.h' line='1553' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='5184'>
- <var-decl name='s_writers' type-id='fb476a2b' visibility='default' filepath='include/linux/fs.h' line='1549' column='1'/>
+ <var-decl name='s_writers' type-id='fb476a2b' visibility='default' filepath='include/linux/fs.h' line='1555' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7744'>
- <var-decl name='s_fs_info' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1556' column='1'/>
+ <var-decl name='s_fs_info' type-id='eaa32e2f' visibility='default' filepath='include/linux/fs.h' line='1562' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7808'>
- <var-decl name='s_time_gran' type-id='19c2251e' visibility='default' filepath='include/linux/fs.h' line='1559' column='1'/>
+ <var-decl name='s_time_gran' type-id='19c2251e' visibility='default' filepath='include/linux/fs.h' line='1565' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7872'>
- <var-decl name='s_time_min' type-id='1afd27ac' visibility='default' filepath='include/linux/fs.h' line='1561' column='1'/>
+ <var-decl name='s_time_min' type-id='1afd27ac' visibility='default' filepath='include/linux/fs.h' line='1567' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='7936'>
- <var-decl name='s_time_max' type-id='1afd27ac' visibility='default' filepath='include/linux/fs.h' line='1562' column='1'/>
+ <var-decl name='s_time_max' type-id='1afd27ac' visibility='default' filepath='include/linux/fs.h' line='1568' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8000'>
- <var-decl name='s_fsnotify_mask' type-id='3f1a6b60' visibility='default' filepath='include/linux/fs.h' line='1564' column='1'/>
+ <var-decl name='s_fsnotify_mask' type-id='3f1a6b60' visibility='default' filepath='include/linux/fs.h' line='1570' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8064'>
- <var-decl name='s_fsnotify_marks' type-id='994d9d61' visibility='default' filepath='include/linux/fs.h' line='1565' column='1'/>
+ <var-decl name='s_fsnotify_marks' type-id='994d9d61' visibility='default' filepath='include/linux/fs.h' line='1571' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8128'>
- <var-decl name='s_id' type-id='16dc656a' visibility='default' filepath='include/linux/fs.h' line='1568' column='1'/>
+ <var-decl name='s_id' type-id='16dc656a' visibility='default' filepath='include/linux/fs.h' line='1574' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8384'>
- <var-decl name='s_uuid' type-id='ec55eb74' visibility='default' filepath='include/linux/fs.h' line='1569' column='1'/>
+ <var-decl name='s_uuid' type-id='ec55eb74' visibility='default' filepath='include/linux/fs.h' line='1575' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8512'>
- <var-decl name='s_max_links' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1571' column='1'/>
+ <var-decl name='s_max_links' type-id='f0981eeb' visibility='default' filepath='include/linux/fs.h' line='1577' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8544'>
- <var-decl name='s_mode' type-id='2665334e' visibility='default' filepath='include/linux/fs.h' line='1572' column='1'/>
+ <var-decl name='s_mode' type-id='2665334e' visibility='default' filepath='include/linux/fs.h' line='1578' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8576'>
- <var-decl name='s_vfs_rename_mutex' type-id='925167dc' visibility='default' filepath='include/linux/fs.h' line='1578' column='1'/>
+ <var-decl name='s_vfs_rename_mutex' type-id='925167dc' visibility='default' filepath='include/linux/fs.h' line='1584' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='8960'>
- <var-decl name='s_subtype' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='1584' column='1'/>
+ <var-decl name='s_subtype' type-id='80f4b756' visibility='default' filepath='include/linux/fs.h' line='1590' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='9024'>
- <var-decl name='s_d_op' type-id='1ee57353' visibility='default' filepath='include/linux/fs.h' line='1586' column='1'/>
+ <var-decl name='s_d_op' type-id='1ee57353' visibility='default' filepath='include/linux/fs.h' line='1592' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='9088'>
- <var-decl name='cleancache_poolid' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1591' column='1'/>
+ <var-decl name='cleancache_poolid' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1597' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='9152'>
- <var-decl name='s_shrink' type-id='27cb404f' visibility='default' filepath='include/linux/fs.h' line='1593' column='1'/>
+ <var-decl name='s_shrink' type-id='27cb404f' visibility='default' filepath='include/linux/fs.h' line='1599' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='9664'>
- <var-decl name='s_remove_count' type-id='f22a8abb' visibility='default' filepath='include/linux/fs.h' line='1596' column='1'/>
+ <var-decl name='s_remove_count' type-id='f22a8abb' visibility='default' filepath='include/linux/fs.h' line='1602' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='9728'>
- <var-decl name='s_fsnotify_connectors' type-id='f22a8abb' visibility='default' filepath='include/linux/fs.h' line='1602' column='1'/>
+ <var-decl name='s_fsnotify_connectors' type-id='f22a8abb' visibility='default' filepath='include/linux/fs.h' line='1608' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='9792'>
- <var-decl name='s_readonly_remount' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1605' column='1'/>
+ <var-decl name='s_readonly_remount' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1611' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='9824'>
- <var-decl name='s_wb_err' type-id='1da55f79' visibility='default' filepath='include/linux/fs.h' line='1608' column='1'/>
+ <var-decl name='s_wb_err' type-id='1da55f79' visibility='default' filepath='include/linux/fs.h' line='1614' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='9856'>
- <var-decl name='s_dio_done_wq' type-id='242e3d19' visibility='default' filepath='include/linux/fs.h' line='1611' column='1'/>
+ <var-decl name='s_dio_done_wq' type-id='242e3d19' visibility='default' filepath='include/linux/fs.h' line='1617' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='9920'>
- <var-decl name='s_pins' type-id='e151255a' visibility='default' filepath='include/linux/fs.h' line='1612' column='1'/>
+ <var-decl name='s_pins' type-id='e151255a' visibility='default' filepath='include/linux/fs.h' line='1618' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='9984'>
- <var-decl name='s_user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/fs.h' line='1619' column='1'/>
+ <var-decl name='s_user_ns' type-id='c0ced320' visibility='default' filepath='include/linux/fs.h' line='1625' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10048'>
- <var-decl name='s_dentry_lru' type-id='c653aac7' visibility='default' filepath='include/linux/fs.h' line='1626' column='1'/>
+ <var-decl name='s_dentry_lru' type-id='c653aac7' visibility='default' filepath='include/linux/fs.h' line='1632' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10304'>
- <var-decl name='s_inode_lru' type-id='c653aac7' visibility='default' filepath='include/linux/fs.h' line='1627' column='1'/>
+ <var-decl name='s_inode_lru' type-id='c653aac7' visibility='default' filepath='include/linux/fs.h' line='1633' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10560'>
- <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='1628' column='1'/>
+ <var-decl name='rcu' type-id='e3d8ce29' visibility='default' filepath='include/linux/fs.h' line='1634' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='10688'>
- <var-decl name='destroy_work' type-id='ef9025d0' visibility='default' filepath='include/linux/fs.h' line='1629' column='1'/>
+ <var-decl name='destroy_work' type-id='ef9025d0' visibility='default' filepath='include/linux/fs.h' line='1635' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11072'>
- <var-decl name='s_sync_lock' type-id='925167dc' visibility='default' filepath='include/linux/fs.h' line='1631' column='1'/>
+ <var-decl name='s_sync_lock' type-id='925167dc' visibility='default' filepath='include/linux/fs.h' line='1637' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11456'>
- <var-decl name='s_stack_depth' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1636' column='1'/>
+ <var-decl name='s_stack_depth' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1642' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11776'>
- <var-decl name='s_inode_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='1639' column='1'/>
+ <var-decl name='s_inode_list_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='1645' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11840'>
- <var-decl name='s_inodes' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1640' column='1'/>
+ <var-decl name='s_inodes' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1646' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='11968'>
- <var-decl name='s_inode_wblist_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='1642' column='1'/>
+ <var-decl name='s_inode_wblist_lock' type-id='fb4018a0' visibility='default' filepath='include/linux/fs.h' line='1648' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12032'>
- <var-decl name='s_inodes_wb' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1643' column='1'/>
+ <var-decl name='s_inodes_wb' type-id='72f469ec' visibility='default' filepath='include/linux/fs.h' line='1649' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12160'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1645' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1651' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12224'>
- <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1646' column='1'/>
+ <var-decl name='android_kabi_reserved2' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1652' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12288'>
- <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1647' column='1'/>
+ <var-decl name='android_kabi_reserved3' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1653' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='12352'>
- <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1648' column='1'/>
+ <var-decl name='android_kabi_reserved4' type-id='91ce1af9' visibility='default' filepath='include/linux/fs.h' line='1654' column='1'/>
</data-member>
</class-decl>
<class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' visibility='default' filepath='include/linux/uidgid.h' line='21' column='1' id='bc3a21bb' is-anonymous='yes'>
@@ -94273,6 +94450,7 @@
<enumerator name='TYPEC_CC_RP_3_0' value='5'/>
</enum-decl>
<pointer-type-def type-id='7c1f247e' size-in-bits='64' id='c2d2a400'/>
+ <pointer-type-def type-id='ab474fe7' size-in-bits='64' id='c2d8e88b'/>
<class-decl name='nf_conntrack_expect' size-in-bits='1856' is-struct='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='18' column='1' id='c2dc4615'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='lnode' type-id='03a4a074' visibility='default' filepath='include/net/netfilter/nf_conntrack_expect.h' line='20' column='1'/>
@@ -96566,6 +96744,7 @@
<var-decl name='bU2DevExitLat' type-id='23119536' visibility='default' filepath='include/uapi/linux/usb/ch9.h' line='930' column='1'/>
</data-member>
</class-decl>
+ <pointer-type-def type-id='379ef9aa' size-in-bits='64' id='c6db53f8'/>
<pointer-type-def type-id='6ab964d2' size-in-bits='64' id='c6e1b58c'/>
<array-type-def dimensions='1' type-id='0888126c' size-in-bits='64' id='c6e3c250'>
<subrange length='2' type-id='7ff19f0f' id='52efc4ef'/>
@@ -96985,15 +97164,15 @@
<var-decl name='target_kn' type-id='150efd3f' visibility='default' filepath='include/linux/kernfs.h' line='110' column='1'/>
</data-member>
</class-decl>
- <class-decl name='wiphy_iftype_akm_suites' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5348' column='1' id='c86a8a16'>
+ <class-decl name='wiphy_iftype_akm_suites' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5403' column='1' id='c86a8a16'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='iftypes_mask' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5349' column='1'/>
+ <var-decl name='iftypes_mask' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5404' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='akm_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5350' column='1'/>
+ <var-decl name='akm_suites' type-id='aded214c' visibility='default' filepath='include/net/cfg80211.h' line='5405' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='n_akm_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5351' column='1'/>
+ <var-decl name='n_akm_suites' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='5406' column='1'/>
</data-member>
</class-decl>
<enum-decl name='hdmi_colorspace' filepath='include/linux/hdmi.h' line='71' column='1' id='c86f38e4'>
@@ -97897,12 +98076,12 @@
<array-type-def dimensions='1' type-id='1851ab9f' size-in-bits='4096' id='cb01bf4b'>
<subrange length='8' type-id='7ff19f0f' id='56e0c0b1'/>
</array-type-def>
- <class-decl name='usb_dynids' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1116' column='1' id='cb08bae1'>
+ <class-decl name='usb_dynids' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1119' column='1' id='cb08bae1'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1117' column='1'/>
+ <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1120' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1118' column='1'/>
+ <var-decl name='list' type-id='72f469ec' visibility='default' filepath='include/linux/usb.h' line='1121' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='96658a93' size-in-bits='64' id='cb0ca137'/>
@@ -98199,6 +98378,7 @@
<parameter type-id='e9a4c848'/>
<return type-id='48b5725f'/>
</function-type>
+ <pointer-type-def type-id='247d0323' size-in-bits='64' id='cbc1e303'/>
<qualified-type-def type-id='5f78aa17' const='yes' id='cbc7b73b'/>
<class-decl name='mbox_chan' size-in-bits='1984' is-struct='yes' visibility='default' filepath='include/linux/mailbox_controller.h' line='117' column='1' id='cbc88d4a'>
<data-member access='public' layout-offset-in-bits='0'>
@@ -102389,12 +102569,12 @@
<parameter type-id='8c493d8a'/>
<return type-id='48b5725f'/>
</function-type>
- <class-decl name='dir_context' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1995' column='1' id='d5476b80'>
+ <class-decl name='dir_context' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='2001' column='1' id='d5476b80'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='actor' type-id='262124ef' visibility='default' filepath='include/linux/fs.h' line='1996' column='1'/>
+ <var-decl name='actor' type-id='262124ef' visibility='default' filepath='include/linux/fs.h' line='2002' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='pos' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='1997' column='1'/>
+ <var-decl name='pos' type-id='69bf7bee' visibility='default' filepath='include/linux/fs.h' line='2003' column='1'/>
</data-member>
</class-decl>
<class-decl name='i2c_bus_recovery_info' size-in-bits='832' is-struct='yes' visibility='default' filepath='include/linux/i2c.h' line='632' column='1' id='d5526a99'>
@@ -102483,15 +102663,15 @@
<return type-id='48b5725f'/>
</function-type>
<pointer-type-def type-id='ae79630f' size-in-bits='64' id='d59ce2e7'/>
- <class-decl name='nl80211_wowlan_tcp_data_seq' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5663' column='1' id='d5a1b375'>
+ <class-decl name='nl80211_wowlan_tcp_data_seq' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5688' column='1' id='d5a1b375'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='start' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5664' column='1'/>
+ <var-decl name='start' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5689' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5664' column='1'/>
+ <var-decl name='offset' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5689' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5664' column='1'/>
+ <var-decl name='len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='5689' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='97f0888c' size-in-bits='64' id='d5a71d52'/>
@@ -103315,15 +103495,15 @@
<parameter type-id='77e79a4b'/>
<return type-id='48b5725f'/>
</function-type>
- <class-decl name='wiphy_iftype_ext_capab2' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5292' column='1' id='d6e8a7b8'>
+ <class-decl name='wiphy_iftype_ext_capab2' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5347' column='1' id='d6e8a7b8'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='5293' column='1'/>
+ <var-decl name='iftype' type-id='86505f90' visibility='default' filepath='include/net/cfg80211.h' line='5348' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='eml_capabilities' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5294' column='1'/>
+ <var-decl name='eml_capabilities' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5349' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='48'>
- <var-decl name='mld_capa_and_ops' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5295' column='1'/>
+ <var-decl name='mld_capa_and_ops' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5350' column='1'/>
</data-member>
</class-decl>
<array-type-def dimensions='1' type-id='a84c031d' size-in-bits='280' id='d6e8cc9d'>
@@ -105955,39 +106135,39 @@
</data-member>
</class-decl>
<pointer-type-def type-id='a9559bf8' size-in-bits='64' id='dc1e097e'/>
- <class-decl name='hid_usage' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='440' column='1' id='dc1e3176'>
+ <class-decl name='hid_usage' size-in-bits='192' is-struct='yes' visibility='default' filepath='include/linux/hid.h' line='441' column='1' id='dc1e3176'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='hid' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='441' column='1'/>
+ <var-decl name='hid' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='442' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='collection_index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='442' column='1'/>
+ <var-decl name='collection_index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='443' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='usage_index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='443' column='1'/>
+ <var-decl name='usage_index' type-id='f0981eeb' visibility='default' filepath='include/linux/hid.h' line='444' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='resolution_multiplier' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='444' column='1'/>
+ <var-decl name='resolution_multiplier' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='445' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='104'>
- <var-decl name='wheel_factor' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='447' column='1'/>
+ <var-decl name='wheel_factor' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='448' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='112'>
- <var-decl name='code' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='448' column='1'/>
+ <var-decl name='code' type-id='d315442e' visibility='default' filepath='include/linux/hid.h' line='449' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/linux/hid.h' line='449' column='1'/>
+ <var-decl name='type' type-id='8f048e17' visibility='default' filepath='include/linux/hid.h' line='450' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='136'>
- <var-decl name='hat_min' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='450' column='1'/>
+ <var-decl name='hat_min' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='451' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='144'>
- <var-decl name='hat_max' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='451' column='1'/>
+ <var-decl name='hat_max' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='452' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='152'>
- <var-decl name='hat_dir' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='452' column='1'/>
+ <var-decl name='hat_dir' type-id='8af57d41' visibility='default' filepath='include/linux/hid.h' line='453' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='wheel_accumulated' type-id='b55def60' visibility='default' filepath='include/linux/hid.h' line='453' column='1'/>
+ <var-decl name='wheel_accumulated' type-id='b55def60' visibility='default' filepath='include/linux/hid.h' line='454' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='49b990e7' size-in-bits='64' id='dc1ef2b7'/>
@@ -107245,18 +107425,18 @@
<pointer-type-def type-id='77fe651f' size-in-bits='64' id='de5dab7b'/>
<pointer-type-def type-id='fad8dcd1' size-in-bits='64' id='de63df21'/>
<qualified-type-def type-id='a81e67e2' const='yes' id='de640095'/>
- <class-decl name='usb_class_driver' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1302' column='1' id='de68658d'>
+ <class-decl name='usb_class_driver' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1305' column='1' id='de68658d'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/usb.h' line='1303' column='1'/>
+ <var-decl name='name' type-id='26a90f95' visibility='default' filepath='include/linux/usb.h' line='1306' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='devnode' type-id='8cd77b5f' visibility='default' filepath='include/linux/usb.h' line='1304' column='1'/>
+ <var-decl name='devnode' type-id='8cd77b5f' visibility='default' filepath='include/linux/usb.h' line='1307' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='fops' type-id='61758ee5' visibility='default' filepath='include/linux/usb.h' line='1305' column='1'/>
+ <var-decl name='fops' type-id='61758ee5' visibility='default' filepath='include/linux/usb.h' line='1308' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='minor_base' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1306' column='1'/>
+ <var-decl name='minor_base' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1309' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='e85fe596' size-in-bits='64' id='de6b64d0'/>
@@ -107911,7 +108091,7 @@
</data-member>
</class-decl>
<qualified-type-def type-id='2b1e6e59' const='yes' id='e03e976a'/>
- <enum-decl name='nl80211_chan_width' filepath='include/uapi/linux/nl80211.h' line='4920' column='1' id='e043cccc'>
+ <enum-decl name='nl80211_chan_width' filepath='include/uapi/linux/nl80211.h' line='4945' column='1' id='e043cccc'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='NL80211_CHAN_WIDTH_20_NOHT' value='0'/>
<enumerator name='NL80211_CHAN_WIDTH_20' value='1'/>
@@ -109323,12 +109503,12 @@
<var-decl name='mibs' type-id='547691f8' visibility='default' filepath='include/net/snmp.h' line='105' column='1'/>
</data-member>
</class-decl>
- <class-decl name='nl80211_vendor_cmd_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6712' column='1' id='e223f110'>
+ <class-decl name='nl80211_vendor_cmd_info' size-in-bits='64' is-struct='yes' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6743' column='1' id='e223f110'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='vendor_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6713' column='1'/>
+ <var-decl name='vendor_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6744' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='subcmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6714' column='1'/>
+ <var-decl name='subcmd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/nl80211.h' line='6745' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='e2245803'>
@@ -109372,94 +109552,94 @@
<var-decl name='array_buffer' type-id='1984aef9' visibility='default' filepath='kernel/trace/trace.h' line='293' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='filtered_pids' type-id='1f6324ad' visibility='default' filepath='kernel/trace/trace.h' line='318' column='1'/>
+ <var-decl name='filtered_pids' type-id='1f6324ad' visibility='default' filepath='kernel/trace/trace.h' line='317' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='filtered_no_pids' type-id='1f6324ad' visibility='default' filepath='kernel/trace/trace.h' line='319' column='1'/>
+ <var-decl name='filtered_no_pids' type-id='1f6324ad' visibility='default' filepath='kernel/trace/trace.h' line='318' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='max_lock' type-id='641c41d1' visibility='default' filepath='kernel/trace/trace.h' line='333' column='1'/>
+ <var-decl name='max_lock' type-id='641c41d1' visibility='default' filepath='kernel/trace/trace.h' line='332' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='672'>
- <var-decl name='buffer_disabled' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='334' column='1'/>
+ <var-decl name='buffer_disabled' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='333' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='stop_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='341' column='1'/>
+ <var-decl name='stop_count' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='340' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='736'>
- <var-decl name='clock_id' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='342' column='1'/>
+ <var-decl name='clock_id' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='341' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='nr_topts' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='343' column='1'/>
+ <var-decl name='nr_topts' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='342' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='800'>
- <var-decl name='clear_trace' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='344' column='1'/>
+ <var-decl name='clear_trace' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='343' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='buffer_percent' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='345' column='1'/>
+ <var-decl name='buffer_percent' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='344' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='864'>
- <var-decl name='n_err_log_entries' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='346' column='1'/>
+ <var-decl name='n_err_log_entries' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='345' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='current_trace' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='347' column='1'/>
+ <var-decl name='current_trace' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='346' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='trace_flags' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='348' column='1'/>
+ <var-decl name='trace_flags' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='347' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='992'>
- <var-decl name='trace_flags_index' type-id='fc872715' visibility='default' filepath='kernel/trace/trace.h' line='349' column='1'/>
+ <var-decl name='trace_flags_index' type-id='fc872715' visibility='default' filepath='kernel/trace/trace.h' line='348' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1248'>
- <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='350' column='1'/>
+ <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='kernel/trace/trace.h' line='349' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1280'>
- <var-decl name='start_lock' type-id='f5c90b3f' visibility='default' filepath='kernel/trace/trace.h' line='351' column='1'/>
+ <var-decl name='start_lock' type-id='f5c90b3f' visibility='default' filepath='kernel/trace/trace.h' line='350' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1344'>
- <var-decl name='err_log' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='352' column='1'/>
+ <var-decl name='err_log' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='351' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1472'>
- <var-decl name='dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='353' column='1'/>
+ <var-decl name='dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='352' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1536'>
- <var-decl name='options' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='354' column='1'/>
+ <var-decl name='options' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='353' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
- <var-decl name='percpu_dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='355' column='1'/>
+ <var-decl name='percpu_dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='354' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1664'>
- <var-decl name='event_dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='356' column='1'/>
+ <var-decl name='event_dir' type-id='27675065' visibility='default' filepath='kernel/trace/trace.h' line='355' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1728'>
- <var-decl name='topts' type-id='e9037327' visibility='default' filepath='kernel/trace/trace.h' line='357' column='1'/>
+ <var-decl name='topts' type-id='e9037327' visibility='default' filepath='kernel/trace/trace.h' line='356' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1792'>
- <var-decl name='systems' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='358' column='1'/>
+ <var-decl name='systems' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='357' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1920'>
- <var-decl name='events' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='359' column='1'/>
+ <var-decl name='events' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='358' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2048'>
- <var-decl name='trace_marker_file' type-id='3d4ca6d2' visibility='default' filepath='kernel/trace/trace.h' line='360' column='1'/>
+ <var-decl name='trace_marker_file' type-id='3d4ca6d2' visibility='default' filepath='kernel/trace/trace.h' line='359' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2112'>
- <var-decl name='tracing_cpumask' type-id='b16b461b' visibility='default' filepath='kernel/trace/trace.h' line='361' column='1'/>
+ <var-decl name='tracing_cpumask' type-id='b16b461b' visibility='default' filepath='kernel/trace/trace.h' line='360' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2176'>
- <var-decl name='ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='362' column='1'/>
+ <var-decl name='ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='361' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2208'>
- <var-decl name='trace_ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='363' column='1'/>
+ <var-decl name='trace_ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='362' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2240'>
- <var-decl name='no_filter_buffering_ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='377' column='1'/>
+ <var-decl name='no_filter_buffering_ref' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='376' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2304'>
- <var-decl name='hist_vars' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='378' column='1'/>
+ <var-decl name='hist_vars' type-id='72f469ec' visibility='default' filepath='kernel/trace/trace.h' line='377' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='2432'>
- <var-decl name='last_func_repeats' type-id='20b86b00' visibility='default' filepath='kernel/trace/trace.h' line='382' column='1'/>
+ <var-decl name='last_func_repeats' type-id='20b86b00' visibility='default' filepath='kernel/trace/trace.h' line='381' column='1'/>
</data-member>
</class-decl>
<qualified-type-def type-id='46cf92da' const='yes' id='e281f141'/>
@@ -109666,15 +109846,15 @@
<var-decl name='pin_ranges' type-id='72f469ec' visibility='default' filepath='drivers/pinctrl/../gpio/gpiolib.h' line='71' column='1'/>
</data-member>
</class-decl>
- <class-decl name='tracer_flags' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='489' column='1' id='e32a3610'>
+ <class-decl name='tracer_flags' size-in-bits='192' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='488' column='1' id='e32a3610'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='val' type-id='19c2251e' visibility='default' filepath='kernel/trace/trace.h' line='490' column='1'/>
+ <var-decl name='val' type-id='19c2251e' visibility='default' filepath='kernel/trace/trace.h' line='489' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='opts' type-id='a0260edc' visibility='default' filepath='kernel/trace/trace.h' line='491' column='1'/>
+ <var-decl name='opts' type-id='a0260edc' visibility='default' filepath='kernel/trace/trace.h' line='490' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='trace' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='492' column='1'/>
+ <var-decl name='trace' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='491' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='e32cf39f'>
@@ -110470,24 +110650,24 @@
</function-type>
<pointer-type-def type-id='07c93537' size-in-bits='64' id='e46f66f3'/>
<typedef-decl name='uintptr_t' type-id='7359adad' filepath='include/linux/types.h' line='37' column='1' id='e475ab95'/>
- <class-decl name='ieee80211_iface_limit' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='4958' column='1' id='e47a5a92'>
+ <class-decl name='ieee80211_iface_limit' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5013' column='1' id='e47a5a92'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='max' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='4959' column='1'/>
+ <var-decl name='max' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5014' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='16'>
- <var-decl name='types' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='4960' column='1'/>
+ <var-decl name='types' type-id='1dc6a898' visibility='default' filepath='include/net/cfg80211.h' line='5015' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='4962' column='1'/>
+ <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5017' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='4963' column='1'/>
+ <var-decl name='android_backport_reserved2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5018' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='4965' column='1'/>
+ <var-decl name='android_vendor_data1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5020' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='4966' column='1'/>
+ <var-decl name='android_vendor_data2' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5021' column='1'/>
</data-member>
</class-decl>
<class-decl name='sk_psock_progs' size-in-bits='256' is-struct='yes' visibility='default' filepath='include/linux/skmsg.h' line='57' column='1' id='e48b8d96'>
@@ -114130,394 +114310,394 @@
<var-decl name='skc_num' type-id='d315442e' visibility='default' filepath='include/net/sock.h' line='182' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1256' column='1' id='e7f4402b'>
+ <class-decl name='__anonymous_struct__' size-in-bits='512' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1268' column='1' id='e7f4402b'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='map_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1257' column='1'/>
+ <var-decl name='map_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1269' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='key_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1258' column='1'/>
+ <var-decl name='key_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1270' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='value_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1259' column='1'/>
+ <var-decl name='value_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1271' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='max_entries' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1260' column='1'/>
+ <var-decl name='max_entries' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1272' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='map_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1261' column='1'/>
+ <var-decl name='map_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1273' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='inner_map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1264' column='1'/>
+ <var-decl name='inner_map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1276' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='numa_node' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1265' column='1'/>
+ <var-decl name='numa_node' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1277' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='map_name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/bpf.h' line='1268' column='1'/>
+ <var-decl name='map_name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/bpf.h' line='1280' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='map_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1269' column='1'/>
+ <var-decl name='map_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1281' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='btf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1270' column='1'/>
+ <var-decl name='btf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1282' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='416'>
- <var-decl name='btf_key_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1271' column='1'/>
+ <var-decl name='btf_key_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1283' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='btf_value_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1272' column='1'/>
+ <var-decl name='btf_value_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1284' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='480'>
- <var-decl name='btf_vmlinux_value_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1273' column='1'/>
+ <var-decl name='btf_vmlinux_value_type_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1285' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1279' column='1' id='e7f4402c'>
+ <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1291' column='1' id='e7f4402c'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1280' column='1'/>
+ <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1292' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='key' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1281' column='1'/>
+ <var-decl name='key' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1293' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='' type-id='ac5ab67f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1282' column='1'/>
+ <var-decl name='' type-id='ac5ab67f' visibility='default' filepath='include/uapi/linux/bpf.h' line='1294' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1286' column='1'/>
+ <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1298' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1289' column='1' id='e7f4402d'>
+ <class-decl name='__anonymous_struct__' size-in-bits='448' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1301' column='1' id='e7f4402d'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='in_batch' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1290' column='1'/>
+ <var-decl name='in_batch' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1302' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='out_batch' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1293' column='1'/>
+ <var-decl name='out_batch' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1305' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='keys' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1294' column='1'/>
+ <var-decl name='keys' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1306' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='values' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1295' column='1'/>
+ <var-decl name='values' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1307' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1296' column='1'/>
+ <var-decl name='count' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1308' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='288'>
- <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1301' column='1'/>
+ <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1313' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='elem_flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1302' column='1'/>
+ <var-decl name='elem_flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1314' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1303' column='1'/>
+ <var-decl name='flags' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1315' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='1024' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1306' column='1' id='e7f4402e'>
+ <class-decl name='__anonymous_struct__' size-in-bits='1024' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1318' column='1' id='e7f4402e'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='prog_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1307' column='1'/>
+ <var-decl name='prog_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1319' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='insn_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1308' column='1'/>
+ <var-decl name='insn_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1320' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='insns' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1309' column='1'/>
+ <var-decl name='insns' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1321' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='license' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1310' column='1'/>
+ <var-decl name='license' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1322' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='log_level' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1311' column='1'/>
+ <var-decl name='log_level' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1323' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='log_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1312' column='1'/>
+ <var-decl name='log_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1324' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='log_buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1313' column='1'/>
+ <var-decl name='log_buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1325' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='kern_version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1314' column='1'/>
+ <var-decl name='kern_version' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1326' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='prog_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1315' column='1'/>
+ <var-decl name='prog_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1327' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='prog_name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/bpf.h' line='1316' column='1'/>
+ <var-decl name='prog_name' type-id='ac1fa8c0' visibility='default' filepath='include/uapi/linux/bpf.h' line='1328' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='prog_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1317' column='1'/>
+ <var-decl name='prog_ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1329' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='544'>
- <var-decl name='expected_attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1322' column='1'/>
+ <var-decl name='expected_attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1334' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='prog_btf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1323' column='1'/>
+ <var-decl name='prog_btf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1335' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='608'>
- <var-decl name='func_info_rec_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1324' column='1'/>
+ <var-decl name='func_info_rec_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1336' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='func_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1325' column='1'/>
+ <var-decl name='func_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1337' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='func_info_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1326' column='1'/>
+ <var-decl name='func_info_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1338' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='736'>
- <var-decl name='line_info_rec_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1327' column='1'/>
+ <var-decl name='line_info_rec_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1339' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='line_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1328' column='1'/>
+ <var-decl name='line_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1340' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='line_info_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1329' column='1'/>
+ <var-decl name='line_info_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1341' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='864'>
- <var-decl name='attach_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1330' column='1'/>
+ <var-decl name='attach_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1342' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='' type-id='ac5ab680' visibility='default' filepath='include/uapi/linux/bpf.h' line='1331' column='1'/>
+ <var-decl name='' type-id='ac5ab680' visibility='default' filepath='include/uapi/linux/bpf.h' line='1343' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='fd_array' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1338' column='1'/>
+ <var-decl name='fd_array' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1350' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1341' column='1' id='e7f4402f'>
+ <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1353' column='1' id='e7f4402f'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='pathname' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1342' column='1'/>
+ <var-decl name='pathname' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1354' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1343' column='1'/>
+ <var-decl name='bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1355' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='file_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1344' column='1'/>
+ <var-decl name='file_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1356' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='160' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1347' column='1' id='e7f44030'>
+ <class-decl name='__anonymous_struct__' size-in-bits='160' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1359' column='1' id='e7f44030'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1348' column='1'/>
+ <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1360' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='attach_bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1349' column='1'/>
+ <var-decl name='attach_bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1361' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1350' column='1'/>
+ <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1362' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='attach_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1351' column='1'/>
+ <var-decl name='attach_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1363' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='replace_bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1352' column='1'/>
+ <var-decl name='replace_bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1364' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1358' column='1' id='e7f44031'>
+ <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1370' column='1' id='e7f44031'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1359' column='1'/>
+ <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1371' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='retval' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1360' column='1'/>
+ <var-decl name='retval' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1372' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='data_size_in' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1361' column='1'/>
+ <var-decl name='data_size_in' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1373' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='data_size_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1362' column='1'/>
+ <var-decl name='data_size_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1374' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='data_in' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1366' column='1'/>
+ <var-decl name='data_in' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1378' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='data_out' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1367' column='1'/>
+ <var-decl name='data_out' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1379' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='repeat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1368' column='1'/>
+ <var-decl name='repeat' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1380' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='288'>
- <var-decl name='duration' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1369' column='1'/>
+ <var-decl name='duration' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1381' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='ctx_size_in' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1370' column='1'/>
+ <var-decl name='ctx_size_in' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1382' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='ctx_size_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1371' column='1'/>
+ <var-decl name='ctx_size_out' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1383' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='ctx_in' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1375' column='1'/>
+ <var-decl name='ctx_in' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1387' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='ctx_out' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1376' column='1'/>
+ <var-decl name='ctx_out' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1388' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1377' column='1'/>
+ <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1389' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='544'>
- <var-decl name='cpu' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1378' column='1'/>
+ <var-decl name='cpu' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1390' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1381' column='1' id='e7f44032'>
+ <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1393' column='1' id='e7f44032'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='' type-id='ac5ab681' visibility='default' filepath='include/uapi/linux/bpf.h' line='1382' column='1'/>
+ <var-decl name='' type-id='ac5ab681' visibility='default' filepath='include/uapi/linux/bpf.h' line='1394' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='next_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1389' column='1'/>
+ <var-decl name='next_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1401' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='open_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1390' column='1'/>
+ <var-decl name='open_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1402' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1393' column='1' id='e7f44033'>
+ <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1405' column='1' id='e7f44033'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1394' column='1'/>
+ <var-decl name='bpf_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1406' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='info_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1395' column='1'/>
+ <var-decl name='info_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1407' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1396' column='1'/>
+ <var-decl name='info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1408' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1399' column='1' id='e7f44034'>
+ <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1411' column='1' id='e7f44034'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1400' column='1'/>
+ <var-decl name='target_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1412' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1401' column='1'/>
+ <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1413' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='query_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1402' column='1'/>
+ <var-decl name='query_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1414' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='attach_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1403' column='1'/>
+ <var-decl name='attach_flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1415' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='prog_ids' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1404' column='1'/>
+ <var-decl name='prog_ids' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1416' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='prog_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1405' column='1'/>
+ <var-decl name='prog_cnt' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1417' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1408' column='1' id='e7f44035'>
+ <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1420' column='1' id='e7f44035'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1409' column='1'/>
+ <var-decl name='name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1421' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1410' column='1'/>
+ <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1422' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1413' column='1' id='e7f44036'>
+ <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1425' column='1' id='e7f44036'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='btf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1414' column='1'/>
+ <var-decl name='btf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1426' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='btf_log_buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1415' column='1'/>
+ <var-decl name='btf_log_buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1427' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='btf_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1416' column='1'/>
+ <var-decl name='btf_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1428' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='160'>
- <var-decl name='btf_log_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1417' column='1'/>
+ <var-decl name='btf_log_size' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1429' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='btf_log_level' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1418' column='1'/>
+ <var-decl name='btf_log_level' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1430' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1421' column='1' id='e7f44037'>
+ <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1433' column='1' id='e7f44037'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='pid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1422' column='1'/>
+ <var-decl name='pid' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1434' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1423' column='1'/>
+ <var-decl name='fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1435' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1424' column='1'/>
+ <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1436' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='buf_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1425' column='1'/>
+ <var-decl name='buf_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1437' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1426' column='1'/>
+ <var-decl name='buf' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1438' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1431' column='1'/>
+ <var-decl name='prog_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1443' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='224'>
- <var-decl name='fd_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1432' column='1'/>
+ <var-decl name='fd_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1444' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='probe_offset' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1433' column='1'/>
+ <var-decl name='probe_offset' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1445' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='probe_addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1434' column='1'/>
+ <var-decl name='probe_addr' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1446' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1437' column='1' id='e7f44038'>
+ <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1449' column='1' id='e7f44038'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1438' column='1'/>
+ <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1450' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='' type-id='ac5ab682' visibility='default' filepath='include/uapi/linux/bpf.h' line='1439' column='1'/>
+ <var-decl name='' type-id='ac5ab682' visibility='default' filepath='include/uapi/linux/bpf.h' line='1451' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1443' column='1'/>
+ <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1455' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1444' column='1'/>
+ <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1456' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='' type-id='ac5ab683' visibility='default' filepath='include/uapi/linux/bpf.h' line='1445' column='1'/>
+ <var-decl name='' type-id='ac5ab683' visibility='default' filepath='include/uapi/linux/bpf.h' line='1457' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1461' column='1' id='e7f44039'>
+ <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1473' column='1' id='e7f44039'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1462' column='1'/>
+ <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1474' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='new_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1464' column='1'/>
+ <var-decl name='new_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1476' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1465' column='1'/>
+ <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1477' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='old_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1468' column='1'/>
+ <var-decl name='old_prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1480' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1471' column='1' id='e7f4403a'>
+ <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1483' column='1' id='e7f4403a'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1472' column='1'/>
+ <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1484' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1475' column='1' id='e7f4403b'>
+ <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1487' column='1' id='e7f4403b'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1476' column='1'/>
+ <var-decl name='type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1488' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1479' column='1' id='e7f4403c'>
+ <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1491' column='1' id='e7f4403c'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1480' column='1'/>
+ <var-decl name='link_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1492' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1481' column='1'/>
+ <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1493' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1484' column='1' id='e7f4403d'>
+ <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1496' column='1' id='e7f4403d'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1485' column='1'/>
+ <var-decl name='prog_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1497' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1486' column='1'/>
+ <var-decl name='map_fd' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1498' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1487' column='1'/>
+ <var-decl name='flags' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1499' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1447' column='1' id='e7f4403e'>
+ <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1459' column='1' id='e7f4403e'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='iter_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1448' column='1'/>
+ <var-decl name='iter_info' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1460' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='iter_info_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1449' column='1'/>
+ <var-decl name='iter_info_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='1461' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1451' column='1' id='e7f4403f'>
+ <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='1463' column='1' id='e7f4403f'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='bpf_cookie' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1456' column='1'/>
+ <var-decl name='bpf_cookie' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='1468' column='1'/>
</data-member>
</class-decl>
<class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/xfrm.h' line='180' column='1' id='e7f44040'>
@@ -114638,60 +114818,60 @@
<var-decl name='more' type-id='f9b06939' visibility='default' filepath='include/linux/netdevice.h' line='3412' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5614' column='1' id='e7f44048'>
+ <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5626' column='1' id='e7f44048'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='tp_name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5615' column='1'/>
+ <var-decl name='tp_name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5627' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='tp_name_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5616' column='1'/>
+ <var-decl name='tp_name_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5628' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5618' column='1' id='e7f44049'>
+ <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5630' column='1' id='e7f44049'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5619' column='1'/>
+ <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5631' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='target_obj_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5620' column='1'/>
+ <var-decl name='target_obj_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5632' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='target_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5621' column='1'/>
+ <var-decl name='target_btf_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5633' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5623' column='1' id='e7f4404a'>
+ <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5635' column='1' id='e7f4404a'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='cgroup_id' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5624' column='1'/>
+ <var-decl name='cgroup_id' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5636' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5625' column='1'/>
+ <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5637' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5627' column='1' id='e7f4404b'>
+ <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5639' column='1' id='e7f4404b'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='target_name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5628' column='1'/>
+ <var-decl name='target_name' type-id='d3130597' visibility='default' filepath='include/uapi/linux/bpf.h' line='5640' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='target_name_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5629' column='1'/>
+ <var-decl name='target_name_len' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5641' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='' type-id='ac5ab696' visibility='default' filepath='include/uapi/linux/bpf.h' line='5630' column='1'/>
+ <var-decl name='' type-id='ac5ab696' visibility='default' filepath='include/uapi/linux/bpf.h' line='5642' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5636' column='1' id='e7f4404c'>
+ <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5648' column='1' id='e7f4404c'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='netns_ino' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5637' column='1'/>
+ <var-decl name='netns_ino' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5649' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5638' column='1'/>
+ <var-decl name='attach_type' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5650' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5640' column='1' id='e7f4404d'>
+ <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5652' column='1' id='e7f4404d'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5641' column='1'/>
+ <var-decl name='ifindex' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5653' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5631' column='1' id='e7f4404e'>
+ <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/uapi/linux/bpf.h' line='5643' column='1' id='e7f4404e'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='map_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5632' column='1'/>
+ <var-decl name='map_id' type-id='3f1a6b60' visibility='default' filepath='include/uapi/linux/bpf.h' line='5644' column='1'/>
</data-member>
</class-decl>
<class-decl name='__anonymous_struct__' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/netfilter/nf_conntrack.h' line='108' column='1' id='e7f4404f'/>
@@ -115102,12 +115282,12 @@
<var-decl name='logflags' type-id='892641a4' visibility='default' filepath='include/net/netfilter/nf_log.h' line='34' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='896' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6131' column='1' id='e7f4406f'>
+ <class-decl name='__anonymous_struct__' size-in-bits='896' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6186' column='1' id='e7f4406f'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6132' column='1'/>
+ <var-decl name='addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6187' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='' type-id='ac5ab6a5' visibility='default' filepath='include/net/cfg80211.h' line='6133' column='1'/>
+ <var-decl name='' type-id='ac5ab6a5' visibility='default' filepath='include/net/cfg80211.h' line='6188' column='1'/>
</data-member>
</class-decl>
<class-decl name='__anonymous_struct__' size-in-bits='72' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='386' column='1' id='e7f44070'>
@@ -115129,132 +115309,132 @@
<var-decl name='len' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='437' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5324' column='1' id='e7f44072'>
+ <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5379' column='1' id='e7f44072'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='preambles' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5325' column='1'/>
+ <var-decl name='preambles' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5380' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='bandwidths' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5326' column='1'/>
+ <var-decl name='bandwidths' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5381' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='max_bursts_exponent' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='5327' column='1'/>
+ <var-decl name='max_bursts_exponent' type-id='fdbf7a0f' visibility='default' filepath='include/net/cfg80211.h' line='5382' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='72'>
- <var-decl name='max_ftms_per_burst' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5328' column='1'/>
+ <var-decl name='max_ftms_per_burst' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5383' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='80'>
- <var-decl name='supported' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5329' column='1'/>
+ <var-decl name='supported' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5384' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='81'>
- <var-decl name='asap' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5330' column='1'/>
+ <var-decl name='asap' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5385' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='82'>
- <var-decl name='non_asap' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5331' column='1'/>
+ <var-decl name='non_asap' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5386' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='83'>
- <var-decl name='request_lci' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5332' column='1'/>
+ <var-decl name='request_lci' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5387' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='84'>
- <var-decl name='request_civicloc' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5333' column='1'/>
+ <var-decl name='request_civicloc' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5388' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='85'>
- <var-decl name='trigger_based' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5334' column='1'/>
+ <var-decl name='trigger_based' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5389' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='86'>
- <var-decl name='non_trigger_based' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5335' column='1'/>
+ <var-decl name='non_trigger_based' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5390' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5710' column='1' id='e7f44073'>
+ <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5765' column='1' id='e7f44073'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='peer' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5711' column='1'/>
+ <var-decl name='peer' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5766' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='vif' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5711' column='1'/>
+ <var-decl name='vif' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5766' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='max_retry' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5712' column='1'/>
+ <var-decl name='max_retry' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5767' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1' id='e7f44074'>
+ <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1' id='e7f44074'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5726' column='1'/>
+ <var-decl name='android_backport_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5781' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6102' column='1' id='e7f44075'>
+ <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6157' column='1' id='e7f44075'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='connected_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6103' column='1'/>
+ <var-decl name='connected_addr' type-id='cf1a4160' visibility='default' filepath='include/net/cfg80211.h' line='6158' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='48'>
- <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6104' column='1'/>
+ <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6159' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='304'>
- <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6105' column='1'/>
+ <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6160' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='1920' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6107' column='1' id='e7f44076'>
+ <class-decl name='__anonymous_struct__' size-in-bits='1920' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6162' column='1' id='e7f44076'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='beacon_interval' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6108' column='1'/>
+ <var-decl name='beacon_interval' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6163' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='preset_chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6109' column='1'/>
+ <var-decl name='preset_chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6164' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6110' column='1'/>
+ <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6165' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1600'>
- <var-decl name='id' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6111' column='1'/>
+ <var-decl name='id' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6166' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1856'>
- <var-decl name='id_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6112' column='1'/>
+ <var-decl name='id_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6167' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1864'>
- <var-decl name='id_up_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6112' column='1'/>
+ <var-decl name='id_up_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6167' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='1088' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6114' column='1' id='e7f44077'>
+ <class-decl name='__anonymous_struct__' size-in-bits='1088' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6169' column='1' id='e7f44077'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='preset_chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6115' column='1'/>
+ <var-decl name='preset_chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6170' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6116' column='1'/>
+ <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6171' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6117' column='1'/>
+ <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6172' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='1152' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6119' column='1' id='e7f44078'>
+ <class-decl name='__anonymous_struct__' size-in-bits='1152' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6174' column='1' id='e7f44078'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='current_bss' type-id='1819dec8' visibility='default' filepath='include/net/cfg80211.h' line='6120' column='1'/>
+ <var-decl name='current_bss' type-id='1819dec8' visibility='default' filepath='include/net/cfg80211.h' line='6175' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6121' column='1'/>
+ <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6176' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='beacon_interval' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6122' column='1'/>
+ <var-decl name='beacon_interval' type-id='95e97e5e' visibility='default' filepath='include/net/cfg80211.h' line='6177' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='864'>
- <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6123' column='1'/>
+ <var-decl name='ssid' type-id='e3dc4fdb' visibility='default' filepath='include/net/cfg80211.h' line='6178' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1120'>
- <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6124' column='1'/>
+ <var-decl name='ssid_len' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='6179' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='768' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6126' column='1' id='e7f44079'>
+ <class-decl name='__anonymous_struct__' size-in-bits='768' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6181' column='1' id='e7f44079'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6127' column='1'/>
+ <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6182' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='832' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6134' column='1' id='e7f4407a'>
+ <class-decl name='__anonymous_struct__' size-in-bits='832' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6189' column='1' id='e7f4407a'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='beacon_interval' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='6135' column='1'/>
+ <var-decl name='beacon_interval' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='6190' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6136' column='1'/>
+ <var-decl name='chandef' type-id='e07d69c8' visibility='default' filepath='include/net/cfg80211.h' line='6191' column='1'/>
</data-member>
</class-decl>
- <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6138' column='1' id='e7f4407b'>
+ <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='include/net/cfg80211.h' line='6193' column='1' id='e7f4407b'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='current_bss' type-id='1819dec8' visibility='default' filepath='include/net/cfg80211.h' line='6139' column='1'/>
+ <var-decl name='current_bss' type-id='1819dec8' visibility='default' filepath='include/net/cfg80211.h' line='6194' column='1'/>
</data-member>
</class-decl>
<class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' visibility='default' filepath='sound/usb/card.h' line='194' column='1' id='e7f4407c'>
@@ -116064,18 +116244,18 @@
</data-member>
</class-decl>
<pointer-type-def type-id='df81074e' size-in-bits='64' id='e9b5d134'/>
- <class-decl name='cfg80211_pmsr_capabilities' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5319' column='1' id='e9bb2749'>
+ <class-decl name='cfg80211_pmsr_capabilities' size-in-bits='160' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5374' column='1' id='e9bb2749'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='max_peers' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5320' column='1'/>
+ <var-decl name='max_peers' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5375' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='report_ap_tsf' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5321' column='1'/>
+ <var-decl name='report_ap_tsf' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5376' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='33'>
- <var-decl name='randomize_mac_addr' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5322' column='1'/>
+ <var-decl name='randomize_mac_addr' type-id='f9b06939' visibility='default' filepath='include/net/cfg80211.h' line='5377' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='ftm' type-id='e7f44072' visibility='default' filepath='include/net/cfg80211.h' line='5336' column='1'/>
+ <var-decl name='ftm' type-id='e7f44072' visibility='default' filepath='include/net/cfg80211.h' line='5391' column='1'/>
</data-member>
</class-decl>
<class-decl name='clk_rate_request' size-in-bits='320' is-struct='yes' visibility='default' filepath='include/linux/clk-provider.h' line='56' column='1' id='e9bea70c'>
@@ -116232,30 +116412,30 @@
<var-decl name='poll' type-id='b347e5ac' visibility='default' filepath='include/linux/cgroup-defs.h' line='614' column='1'/>
</data-member>
</class-decl>
- <class-decl name='sched_group_capacity' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='1838' column='1' id='ea3de64d'>
+ <class-decl name='sched_group_capacity' size-in-bits='384' is-struct='yes' visibility='default' filepath='kernel/sched/sched.h' line='1837' column='1' id='ea3de64d'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='ref' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='1839' column='1'/>
+ <var-decl name='ref' type-id='49178f86' visibility='default' filepath='kernel/sched/sched.h' line='1838' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1844' column='1'/>
+ <var-decl name='capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1843' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='min_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1845' column='1'/>
+ <var-decl name='min_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1844' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='max_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1846' column='1'/>
+ <var-decl name='max_capacity' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1845' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='next_update' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1847' column='1'/>
+ <var-decl name='next_update' type-id='7359adad' visibility='default' filepath='kernel/sched/sched.h' line='1846' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='imbalance' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1848' column='1'/>
+ <var-decl name='imbalance' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1847' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='352'>
- <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1851' column='1'/>
+ <var-decl name='id' type-id='95e97e5e' visibility='default' filepath='kernel/sched/sched.h' line='1850' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='cpumask' type-id='c99b5ecd' visibility='default' filepath='kernel/sched/sched.h' line='1854' column='1'/>
+ <var-decl name='cpumask' type-id='c99b5ecd' visibility='default' filepath='kernel/sched/sched.h' line='1853' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='ae99f6b5' size-in-bits='64' id='ea44fe69'/>
@@ -119568,33 +119748,33 @@
<pointer-type-def type-id='f83bf2cd' size-in-bits='64' id='f13b7179'/>
<qualified-type-def type-id='01c546da' const='yes' id='f1415d4d'/>
<pointer-type-def type-id='a7b38e12' size-in-bits='64' id='f14ddf44'/>
- <class-decl name='usb_sg_request' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1907' column='1' id='f14efa5e'>
+ <class-decl name='usb_sg_request' size-in-bits='704' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1910' column='1' id='f14efa5e'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1908' column='1'/>
+ <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1911' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='bytes' type-id='b59d7dce' visibility='default' filepath='include/linux/usb.h' line='1909' column='1'/>
+ <var-decl name='bytes' type-id='b59d7dce' visibility='default' filepath='include/linux/usb.h' line='1912' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1915' column='1'/>
+ <var-decl name='lock' type-id='fb4018a0' visibility='default' filepath='include/linux/usb.h' line='1918' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='1917' column='1'/>
+ <var-decl name='dev' type-id='25e60cb2' visibility='default' filepath='include/linux/usb.h' line='1920' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='pipe' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1918' column='1'/>
+ <var-decl name='pipe' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1921' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='288'>
- <var-decl name='entries' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1920' column='1'/>
+ <var-decl name='entries' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1923' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='urbs' type-id='db81fc08' visibility='default' filepath='include/linux/usb.h' line='1921' column='1'/>
+ <var-decl name='urbs' type-id='db81fc08' visibility='default' filepath='include/linux/usb.h' line='1924' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1923' column='1'/>
+ <var-decl name='count' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1926' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='complete' type-id='f9fef04f' visibility='default' filepath='include/linux/usb.h' line='1924' column='1'/>
+ <var-decl name='complete' type-id='f9fef04f' visibility='default' filepath='include/linux/usb.h' line='1927' column='1'/>
</data-member>
</class-decl>
<class-decl name='drm_writeback_connector' size-in-bits='16320' is-struct='yes' visibility='default' filepath='include/drm/drm_writeback.h' line='21' column='1' id='f14fc18d'>
@@ -119830,12 +120010,12 @@
<array-type-def dimensions='1' type-id='a28355c2' size-in-bits='1408' id='f2003288'>
<subrange length='11' type-id='7ff19f0f' id='847bc017'/>
</array-type-def>
- <class-decl name='tracer_opt' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='480' column='1' id='f20168e6'>
+ <class-decl name='tracer_opt' size-in-bits='128' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='479' column='1' id='f20168e6'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='481' column='1'/>
+ <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='480' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='bit' type-id='19c2251e' visibility='default' filepath='kernel/trace/trace.h' line='482' column='1'/>
+ <var-decl name='bit' type-id='19c2251e' visibility='default' filepath='kernel/trace/trace.h' line='481' column='1'/>
</data-member>
</class-decl>
<qualified-type-def type-id='dec44472' const='yes' id='f213bd85'/>
@@ -122017,15 +122197,15 @@
</data-member>
</class-decl>
<pointer-type-def type-id='3a58d3ba' size-in-bits='64' id='f7e7b3e8'/>
- <class-decl name='cpufreq_frequency_table' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='668' column='1' id='f7f17df9'>
+ <class-decl name='cpufreq_frequency_table' size-in-bits='96' is-struct='yes' visibility='default' filepath='include/linux/cpufreq.h' line='673' column='1' id='f7f17df9'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='669' column='1'/>
+ <var-decl name='flags' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='674' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='driver_data' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='670' column='1'/>
+ <var-decl name='driver_data' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='675' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='frequency' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='671' column='1'/>
+ <var-decl name='frequency' type-id='f0981eeb' visibility='default' filepath='include/linux/cpufreq.h' line='676' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='4fc2605b' size-in-bits='64' id='f7f718cb'/>
@@ -123199,7 +123379,7 @@
<parameter type-id='ca9354d1'/>
<return type-id='95e97e5e'/>
</function-type>
- <enum-decl name='hid_type' filepath='include/linux/hid.h' line='541' column='1' id='fa954a4e'>
+ <enum-decl name='hid_type' filepath='include/linux/hid.h' line='542' column='1' id='fa954a4e'>
<underlying-type type-id='9cac1fee'/>
<enumerator name='HID_TYPE_OTHER' value='0'/>
<enumerator name='HID_TYPE_USBMOUSE' value='1'/>
@@ -123508,15 +123688,15 @@
</function-type>
<typedef-decl name='spinlock_t' type-id='53fb272e' filepath='include/linux/spinlock_types.h' line='29' column='1' id='fb4018a0'/>
<pointer-type-def type-id='cf96947e' size-in-bits='64' id='fb424bb0'/>
- <class-decl name='sb_writers' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1492' column='1' id='fb476a2b'>
+ <class-decl name='sb_writers' size-in-bits='2560' is-struct='yes' visibility='default' filepath='include/linux/fs.h' line='1498' column='1' id='fb476a2b'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='frozen' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1493' column='1'/>
+ <var-decl name='frozen' type-id='95e97e5e' visibility='default' filepath='include/linux/fs.h' line='1499' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='wait_unfrozen' type-id='b5ab048f' visibility='default' filepath='include/linux/fs.h' line='1494' column='1'/>
+ <var-decl name='wait_unfrozen' type-id='b5ab048f' visibility='default' filepath='include/linux/fs.h' line='1500' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='rw_sem' type-id='a09ef5a6' visibility='default' filepath='include/linux/fs.h' line='1495' column='1'/>
+ <var-decl name='rw_sem' type-id='a09ef5a6' visibility='default' filepath='include/linux/fs.h' line='1501' column='1'/>
</data-member>
</class-decl>
<qualified-type-def type-id='0f042891' const='yes' id='fb4943b2'/>
@@ -123864,27 +124044,27 @@
<var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/linux/pci.h' line='774' column='1'/>
</data-member>
</class-decl>
- <class-decl name='wiphy_vendor_command' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5245' column='1' id='fc206ed1'>
+ <class-decl name='wiphy_vendor_command' size-in-bits='448' is-struct='yes' visibility='default' filepath='include/net/cfg80211.h' line='5300' column='1' id='fc206ed1'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='info' type-id='e223f110' visibility='default' filepath='include/net/cfg80211.h' line='5246' column='1'/>
+ <var-decl name='info' type-id='e223f110' visibility='default' filepath='include/net/cfg80211.h' line='5301' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5247' column='1'/>
+ <var-decl name='flags' type-id='19c2251e' visibility='default' filepath='include/net/cfg80211.h' line='5302' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='doit' type-id='a9032da3' visibility='default' filepath='include/net/cfg80211.h' line='5248' column='1'/>
+ <var-decl name='doit' type-id='a9032da3' visibility='default' filepath='include/net/cfg80211.h' line='5303' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='dumpit' type-id='dcf81beb' visibility='default' filepath='include/net/cfg80211.h' line='5250' column='1'/>
+ <var-decl name='dumpit' type-id='dcf81beb' visibility='default' filepath='include/net/cfg80211.h' line='5305' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='policy' type-id='109cdb66' visibility='default' filepath='include/net/cfg80211.h' line='5253' column='1'/>
+ <var-decl name='policy' type-id='109cdb66' visibility='default' filepath='include/net/cfg80211.h' line='5308' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='maxattr' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5254' column='1'/>
+ <var-decl name='maxattr' type-id='f0981eeb' visibility='default' filepath='include/net/cfg80211.h' line='5309' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5256' column='1'/>
+ <var-decl name='android_kabi_reserved1' type-id='91ce1af9' visibility='default' filepath='include/net/cfg80211.h' line='5311' column='1'/>
</data-member>
</class-decl>
<function-type size-in-bits='64' id='fc224242'>
@@ -123908,18 +124088,18 @@
</class-decl>
<pointer-type-def type-id='392af4e9' size-in-bits='64' id='fc4f83c1'/>
<pointer-type-def type-id='58dbb714' size-in-bits='64' id='fc616182'/>
- <class-decl name='usb_iso_packet_descriptor' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1379' column='1' id='fc6d031c'>
+ <class-decl name='usb_iso_packet_descriptor' size-in-bits='128' is-struct='yes' visibility='default' filepath='include/linux/usb.h' line='1382' column='1' id='fc6d031c'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1380' column='1'/>
+ <var-decl name='offset' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1383' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='32'>
- <var-decl name='length' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1381' column='1'/>
+ <var-decl name='length' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1384' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='actual_length' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1382' column='1'/>
+ <var-decl name='actual_length' type-id='f0981eeb' visibility='default' filepath='include/linux/usb.h' line='1385' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='96'>
- <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1383' column='1'/>
+ <var-decl name='status' type-id='95e97e5e' visibility='default' filepath='include/linux/usb.h' line='1386' column='1'/>
</data-member>
</class-decl>
<pointer-type-def type-id='4234e231' size-in-bits='64' id='fc6f14a9'/>
@@ -124124,72 +124304,72 @@
<var-decl name='comp_extra' type-id='f0981eeb' visibility='default' filepath='include/linux/ppp-comp.h' line='83' column='1'/>
</data-member>
</class-decl>
- <class-decl name='tracer' size-in-bits='1216' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='526' column='1' id='fd1f8b7c'>
+ <class-decl name='tracer' size-in-bits='1216' is-struct='yes' visibility='default' filepath='kernel/trace/trace.h' line='525' column='1' id='fd1f8b7c'>
<data-member access='public' layout-offset-in-bits='0'>
- <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='527' column='1'/>
+ <var-decl name='name' type-id='80f4b756' visibility='default' filepath='kernel/trace/trace.h' line='526' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
- <var-decl name='init' type-id='30b9fb16' visibility='default' filepath='kernel/trace/trace.h' line='528' column='1'/>
+ <var-decl name='init' type-id='30b9fb16' visibility='default' filepath='kernel/trace/trace.h' line='527' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='128'>
- <var-decl name='reset' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='529' column='1'/>
+ <var-decl name='reset' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='528' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='192'>
- <var-decl name='start' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='530' column='1'/>
+ <var-decl name='start' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='529' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='256'>
- <var-decl name='stop' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='531' column='1'/>
+ <var-decl name='stop' type-id='578c706b' visibility='default' filepath='kernel/trace/trace.h' line='530' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='320'>
- <var-decl name='update_thresh' type-id='30b9fb16' visibility='default' filepath='kernel/trace/trace.h' line='532' column='1'/>
+ <var-decl name='update_thresh' type-id='30b9fb16' visibility='default' filepath='kernel/trace/trace.h' line='531' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='384'>
- <var-decl name='open' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='533' column='1'/>
+ <var-decl name='open' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='532' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='448'>
- <var-decl name='pipe_open' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='534' column='1'/>
+ <var-decl name='pipe_open' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='533' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='512'>
- <var-decl name='close' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='535' column='1'/>
+ <var-decl name='close' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='534' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='576'>
- <var-decl name='pipe_close' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='536' column='1'/>
+ <var-decl name='pipe_close' type-id='29bf40b4' visibility='default' filepath='kernel/trace/trace.h' line='535' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='640'>
- <var-decl name='read' type-id='43a53075' visibility='default' filepath='kernel/trace/trace.h' line='537' column='1'/>
+ <var-decl name='read' type-id='43a53075' visibility='default' filepath='kernel/trace/trace.h' line='536' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='704'>
- <var-decl name='splice_read' type-id='0d8953a0' visibility='default' filepath='kernel/trace/trace.h' line='540' column='1'/>
+ <var-decl name='splice_read' type-id='0d8953a0' visibility='default' filepath='kernel/trace/trace.h' line='539' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='768'>
- <var-decl name='print_header' type-id='0f294852' visibility='default' filepath='kernel/trace/trace.h' line='550' column='1'/>
+ <var-decl name='print_header' type-id='0f294852' visibility='default' filepath='kernel/trace/trace.h' line='549' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='832'>
- <var-decl name='print_line' type-id='cfbdf512' visibility='default' filepath='kernel/trace/trace.h' line='551' column='1'/>
+ <var-decl name='print_line' type-id='cfbdf512' visibility='default' filepath='kernel/trace/trace.h' line='550' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='896'>
- <var-decl name='set_flag' type-id='d01e1ab3' visibility='default' filepath='kernel/trace/trace.h' line='553' column='1'/>
+ <var-decl name='set_flag' type-id='d01e1ab3' visibility='default' filepath='kernel/trace/trace.h' line='552' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='960'>
- <var-decl name='flag_changed' type-id='e3e70e04' visibility='default' filepath='kernel/trace/trace.h' line='556' column='1'/>
+ <var-decl name='flag_changed' type-id='e3e70e04' visibility='default' filepath='kernel/trace/trace.h' line='555' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1024'>
- <var-decl name='next' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='558' column='1'/>
+ <var-decl name='next' type-id='0a18715a' visibility='default' filepath='kernel/trace/trace.h' line='557' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1088'>
- <var-decl name='flags' type-id='aef13606' visibility='default' filepath='kernel/trace/trace.h' line='559' column='1'/>
+ <var-decl name='flags' type-id='aef13606' visibility='default' filepath='kernel/trace/trace.h' line='558' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1152'>
- <var-decl name='enabled' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='560' column='1'/>
+ <var-decl name='enabled' type-id='95e97e5e' visibility='default' filepath='kernel/trace/trace.h' line='559' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1184'>
- <var-decl name='print_max' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='561' column='1'/>
+ <var-decl name='print_max' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='560' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1192'>
- <var-decl name='allow_instances' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='562' column='1'/>
+ <var-decl name='allow_instances' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='561' column='1'/>
</data-member>
<data-member access='public' layout-offset-in-bits='1200'>
- <var-decl name='noboot' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='567' column='1'/>
+ <var-decl name='noboot' type-id='b50a4934' visibility='default' filepath='kernel/trace/trace.h' line='566' column='1'/>
</data-member>
</class-decl>
<class-decl name='rtc_class_ops' size-in-bits='640' is-struct='yes' visibility='default' filepath='include/linux/rtc.h' line='60' column='1' id='fd1fa73c'>
@@ -125362,7 +125542,44 @@
</data-member>
</class-decl>
<qualified-type-def type-id='772a4ddf' const='yes' id='ff1ab2e4'/>
- <class-decl name='kstatfs' is-struct='yes' visibility='default' is-declaration-only='yes' id='ff1c7c9b'/>
+ <class-decl name='kstatfs' size-in-bits='960' is-struct='yes' visibility='default' filepath='include/linux/statfs.h' line='9' column='1' id='ff1c7c9b'>
+ <data-member access='public' layout-offset-in-bits='0'>
+ <var-decl name='f_type' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='10' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='64'>
+ <var-decl name='f_bsize' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='11' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='128'>
+ <var-decl name='f_blocks' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='12' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='192'>
+ <var-decl name='f_bfree' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='13' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='256'>
+ <var-decl name='f_bavail' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='14' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='320'>
+ <var-decl name='f_files' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='15' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='384'>
+ <var-decl name='f_ffree' type-id='91ce1af9' visibility='default' filepath='include/linux/statfs.h' line='16' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='448'>
+ <var-decl name='f_fsid' type-id='ac895711' visibility='default' filepath='include/linux/statfs.h' line='17' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='512'>
+ <var-decl name='f_namelen' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='18' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='576'>
+ <var-decl name='f_frsize' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='19' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='640'>
+ <var-decl name='f_flags' type-id='bd54fe1a' visibility='default' filepath='include/linux/statfs.h' line='20' column='1'/>
+ </data-member>
+ <data-member access='public' layout-offset-in-bits='704'>
+ <var-decl name='f_spare' type-id='5d4602e8' visibility='default' filepath='include/linux/statfs.h' line='21' column='1'/>
+ </data-member>
+ </class-decl>
<class-decl name='tcpci_data' size-in-bits='512' is-struct='yes' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='186' column='1' id='ff22cb55'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='regmap' type-id='29af9a71' visibility='default' filepath='drivers/usb/typec/tcpm/tcpci.h' line='187' column='1'/>
@@ -125630,7 +125847,7 @@
<pointer-type-def type-id='46f53066' size-in-bits='64' id='fffb07a4'/>
<qualified-type-def type-id='55efd1a3' const='yes' id='fffdaf52'/>
<var-decl name='GKI_struct_blk_mq_alloc_data' type-id='17c43c95' mangled-name='GKI_struct_blk_mq_alloc_data' visibility='default' filepath='block/vendor_hooks.c' line='22' column='1' elf-symbol-id='GKI_struct_blk_mq_alloc_data'/>
- <var-decl name='GKI_struct_readahead_control' type-id='9ec8ec17' mangled-name='GKI_struct_readahead_control' visibility='default' filepath='drivers/android/vendor_hooks.c' line='423' column='1' elf-symbol-id='GKI_struct_readahead_control'/>
+ <var-decl name='GKI_struct_readahead_control' type-id='9ec8ec17' mangled-name='GKI_struct_readahead_control' visibility='default' filepath='drivers/android/vendor_hooks.c' line='432' column='1' elf-symbol-id='GKI_struct_readahead_control'/>
<var-decl name='GKI_struct_selinux_state' type-id='4ae52763' mangled-name='GKI_struct_selinux_state' visibility='default' filepath='security/selinux/vendor_hooks.c' line='21' column='1' elf-symbol-id='GKI_struct_selinux_state'/>
<function-decl name='I_BDEV' mangled-name='I_BDEV' filepath='block/bdev.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='I_BDEV'>
<parameter type-id='7e666abe' name='inode' filepath='block/bdev.c' line='42' column='1'/>
@@ -125782,8 +125999,8 @@
<parameter type-id='95e97e5e' name='node' filepath='net/core/skbuff.c' line='398' column='1'/>
<return type-id='0fbf3cfd'/>
</function-decl>
- <function-decl name='__balance_callbacks' mangled-name='__balance_callbacks' filepath='kernel/sched/core.c' line='4868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__balance_callbacks'>
- <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='4868' column='1'/>
+ <function-decl name='__balance_callbacks' mangled-name='__balance_callbacks' filepath='kernel/sched/core.c' line='4836' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__balance_callbacks'>
+ <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='4836' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='__bforget' mangled-name='__bforget' filepath='fs/buffer.c' line='1156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__bforget'>
@@ -125880,10 +126097,10 @@
<parameter type-id='a57283f9' name='lkclass' filepath='block/genhd.c' line='1333' column='1'/>
<return type-id='33c599da'/>
</function-decl>
- <function-decl name='__blk_mq_alloc_disk' mangled-name='__blk_mq_alloc_disk' filepath='block/blk-mq.c' line='3147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_mq_alloc_disk'>
- <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3147' column='1'/>
- <parameter type-id='eaa32e2f' name='queuedata' filepath='block/blk-mq.c' line='3147' column='1'/>
- <parameter type-id='a57283f9' name='lkclass' filepath='block/blk-mq.c' line='3148' column='1'/>
+ <function-decl name='__blk_mq_alloc_disk' mangled-name='__blk_mq_alloc_disk' filepath='block/blk-mq.c' line='3149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_mq_alloc_disk'>
+ <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3149' column='1'/>
+ <parameter type-id='eaa32e2f' name='queuedata' filepath='block/blk-mq.c' line='3149' column='1'/>
+ <parameter type-id='a57283f9' name='lkclass' filepath='block/blk-mq.c' line='3150' column='1'/>
<return type-id='33c599da'/>
</function-decl>
<function-decl name='__blk_mq_end_request' mangled-name='__blk_mq_end_request' filepath='block/blk-mq.c' line='550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_mq_end_request'>
@@ -125891,11 +126108,11 @@
<parameter type-id='f4e2facd' name='error' filepath='block/blk-mq.c' line='550' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='__blk_rq_map_sg' mangled-name='__blk_rq_map_sg' filepath='block/blk-merge.c' line='530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_rq_map_sg'>
- <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='530' column='1'/>
- <parameter type-id='3dad1a48' name='rq' filepath='block/blk-merge.c' line='530' column='1'/>
- <parameter type-id='bf3ef905' name='sglist' filepath='block/blk-merge.c' line='531' column='1'/>
- <parameter type-id='3f2244fd' name='last_sg' filepath='block/blk-merge.c' line='531' column='1'/>
+ <function-decl name='__blk_rq_map_sg' mangled-name='__blk_rq_map_sg' filepath='block/blk-merge.c' line='542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blk_rq_map_sg'>
+ <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='542' column='1'/>
+ <parameter type-id='3dad1a48' name='rq' filepath='block/blk-merge.c' line='542' column='1'/>
+ <parameter type-id='bf3ef905' name='sglist' filepath='block/blk-merge.c' line='543' column='1'/>
+ <parameter type-id='3f2244fd' name='last_sg' filepath='block/blk-merge.c' line='543' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__blkdev_issue_discard' mangled-name='__blkdev_issue_discard' filepath='block/blk-lib.c' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blkdev_issue_discard'>
@@ -125907,6 +126124,18 @@
<parameter type-id='334817d1' name='biop' filepath='block/blk-lib.c' line='28' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='__blkg_prfill_rwstat' mangled-name='__blkg_prfill_rwstat' filepath='block/blk-cgroup-rwstat.c' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blkg_prfill_rwstat'>
+ <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup-rwstat.c' line='42' column='1'/>
+ <parameter type-id='3213e875' name='pd' filepath='block/blk-cgroup-rwstat.c' line='42' column='1'/>
+ <parameter type-id='0c9ab50f' name='rwstat' filepath='block/blk-cgroup-rwstat.c' line='43' column='1'/>
+ <return type-id='91ce1af9'/>
+ </function-decl>
+ <function-decl name='__blkg_prfill_u64' mangled-name='__blkg_prfill_u64' filepath='block/blk-cgroup.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blkg_prfill_u64'>
+ <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup.c' line='546' column='1'/>
+ <parameter type-id='3213e875' name='pd' filepath='block/blk-cgroup.c' line='546' column='1'/>
+ <parameter type-id='91ce1af9' name='v' filepath='block/blk-cgroup.c' line='546' column='1'/>
+ <return type-id='91ce1af9'/>
+ </function-decl>
<function-decl name='__blockdev_direct_IO' mangled-name='__blockdev_direct_IO' filepath='fs/direct-io.c' line='1350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__blockdev_direct_IO'>
<parameter type-id='80f25feb' name='iocb' filepath='fs/direct-io.c' line='1350' column='1'/>
<parameter type-id='7e666abe' name='inode' filepath='fs/direct-io.c' line='1350' column='1'/>
@@ -126307,11 +126536,11 @@
<parameter type-id='80f4b756' name='name' filepath='drivers/base/devres.c' line='158' column='1'/>
<return type-id='eaa32e2f'/>
</function-decl>
- <function-decl name='__dma_request_channel' mangled-name='__dma_request_channel' filepath='drivers/dma/dmaengine.c' line='755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dma_request_channel'>
- <parameter type-id='d2b9f7d5' name='mask' filepath='drivers/dma/dmaengine.c' line='755' column='1'/>
- <parameter type-id='55f53546' name='fn' filepath='drivers/dma/dmaengine.c' line='756' column='1'/>
- <parameter type-id='eaa32e2f' name='fn_param' filepath='drivers/dma/dmaengine.c' line='756' column='1'/>
- <parameter type-id='9a537bbe' name='np' filepath='drivers/dma/dmaengine.c' line='757' column='1'/>
+ <function-decl name='__dma_request_channel' mangled-name='__dma_request_channel' filepath='drivers/dma/dmaengine.c' line='756' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__dma_request_channel'>
+ <parameter type-id='d2b9f7d5' name='mask' filepath='drivers/dma/dmaengine.c' line='756' column='1'/>
+ <parameter type-id='55f53546' name='fn' filepath='drivers/dma/dmaengine.c' line='757' column='1'/>
+ <parameter type-id='eaa32e2f' name='fn_param' filepath='drivers/dma/dmaengine.c' line='757' column='1'/>
+ <parameter type-id='9a537bbe' name='np' filepath='drivers/dma/dmaengine.c' line='758' column='1'/>
<return type-id='27f3f5d8'/>
</function-decl>
<function-decl name='__do_once_done' mangled-name='__do_once_done' filepath='lib/once.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__do_once_done'>
@@ -126520,6 +126749,11 @@
<parameter type-id='7359adad' name='addr' filepath='mm/mmap.c' line='2307' column='1'/>
<return type-id='2ae08426'/>
</function-decl>
+ <function-decl name='__free_iova' mangled-name='__free_iova' filepath='drivers/iommu/iova.c' line='544' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__free_iova'>
+ <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='544' column='1'/>
+ <parameter type-id='b2ea0a72' name='iova' filepath='drivers/iommu/iova.c' line='544' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='__free_pages' mangled-name='__free_pages' filepath='mm/page_alloc.c' line='5639' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__free_pages'>
<parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='5639' column='1'/>
<parameter type-id='f0981eeb' name='order' filepath='mm/page_alloc.c' line='5639' column='1'/>
@@ -126722,10 +126956,10 @@
<parameter type-id='2448a865' name='sdif' filepath='net/ipv4/inet_hashtables.c' line='396' column='1'/>
<return type-id='f772df6d'/>
</function-decl>
- <function-decl name='__init_rwsem' mangled-name='__init_rwsem' filepath='kernel/locking/rwsem.c' line='316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__init_rwsem'>
- <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='316' column='1'/>
- <parameter type-id='80f4b756' name='name' filepath='kernel/locking/rwsem.c' line='316' column='1'/>
- <parameter type-id='a57283f9' name='key' filepath='kernel/locking/rwsem.c' line='317' column='1'/>
+ <function-decl name='__init_rwsem' mangled-name='__init_rwsem' filepath='kernel/locking/rwsem.c' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__init_rwsem'>
+ <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='317' column='1'/>
+ <parameter type-id='80f4b756' name='name' filepath='kernel/locking/rwsem.c' line='317' column='1'/>
+ <parameter type-id='a57283f9' name='key' filepath='kernel/locking/rwsem.c' line='318' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='__init_swait_queue_head' mangled-name='__init_swait_queue_head' filepath='kernel/sched/swait.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__init_swait_queue_head'>
@@ -126947,22 +127181,22 @@
<parameter type-id='95e97e5e' name='flags' filepath='fs/fs-writeback.c' line='2407' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='__mdiobus_read' mangled-name='__mdiobus_read' filepath='drivers/net/phy/mdio_bus.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_read'>
- <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='749' column='1'/>
- <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='749' column='1'/>
- <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='749' column='1'/>
+ <function-decl name='__mdiobus_read' mangled-name='__mdiobus_read' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_read'>
+ <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1'/>
+ <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1'/>
+ <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='754' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__mdiobus_register' mangled-name='__mdiobus_register' filepath='drivers/net/phy/mdio_bus.c' line='518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_register'>
- <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='518' column='1'/>
- <parameter type-id='2730d015' name='owner' filepath='drivers/net/phy/mdio_bus.c' line='518' column='1'/>
+ <function-decl name='__mdiobus_register' mangled-name='__mdiobus_register' filepath='drivers/net/phy/mdio_bus.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_register'>
+ <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='523' column='1'/>
+ <parameter type-id='2730d015' name='owner' filepath='drivers/net/phy/mdio_bus.c' line='523' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__mdiobus_write' mangled-name='__mdiobus_write' filepath='drivers/net/phy/mdio_bus.c' line='775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_write'>
- <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='775' column='1'/>
- <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='775' column='1'/>
- <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='775' column='1'/>
- <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/mdio_bus.c' line='775' column='1'/>
+ <function-decl name='__mdiobus_write' mangled-name='__mdiobus_write' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mdiobus_write'>
+ <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
+ <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
+ <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
+ <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/mdio_bus.c' line='780' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__media_device_register' mangled-name='__media_device_register' filepath='drivers/media/mc/mc-device.c' line='732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__media_device_register'>
@@ -126998,11 +127232,11 @@
<parameter type-id='b59d7dce' name='count' filepath='arch/arm64/kernel/io.c' line='71' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='__migrate_task' mangled-name='__migrate_task' filepath='kernel/sched/core.c' line='2350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__migrate_task'>
- <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2350' column='1'/>
- <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='2350' column='1'/>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2351' column='1'/>
- <parameter type-id='95e97e5e' name='dest_cpu' filepath='kernel/sched/core.c' line='2351' column='1'/>
+ <function-decl name='__migrate_task' mangled-name='__migrate_task' filepath='kernel/sched/core.c' line='2339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__migrate_task'>
+ <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2339' column='1'/>
+ <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='2339' column='1'/>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2340' column='1'/>
+ <parameter type-id='95e97e5e' name='dest_cpu' filepath='kernel/sched/core.c' line='2340' column='1'/>
<return type-id='6ed6b432'/>
</function-decl>
<function-decl name='__mmap_lock_do_trace_acquire_returned' mangled-name='__mmap_lock_do_trace_acquire_returned' filepath='mm/mmap_lock.c' line='234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__mmap_lock_do_trace_acquire_returned'>
@@ -127109,39 +127343,39 @@
<parameter type-id='6fba21a9' name='type' filepath='net/core/dev.c' line='2574' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__netlink_kernel_create' mangled-name='__netlink_kernel_create' filepath='net/netlink/af_netlink.c' line='2049' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__netlink_kernel_create'>
- <parameter type-id='a2bff676' name='net' filepath='net/netlink/af_netlink.c' line='2049' column='1'/>
- <parameter type-id='95e97e5e' name='unit' filepath='net/netlink/af_netlink.c' line='2049' column='1'/>
- <parameter type-id='2730d015' name='module' filepath='net/netlink/af_netlink.c' line='2049' column='1'/>
- <parameter type-id='8438f281' name='cfg' filepath='net/netlink/af_netlink.c' line='2050' column='1'/>
+ <function-decl name='__netlink_kernel_create' mangled-name='__netlink_kernel_create' filepath='net/netlink/af_netlink.c' line='2059' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__netlink_kernel_create'>
+ <parameter type-id='a2bff676' name='net' filepath='net/netlink/af_netlink.c' line='2059' column='1'/>
+ <parameter type-id='95e97e5e' name='unit' filepath='net/netlink/af_netlink.c' line='2059' column='1'/>
+ <parameter type-id='2730d015' name='module' filepath='net/netlink/af_netlink.c' line='2059' column='1'/>
+ <parameter type-id='8438f281' name='cfg' filepath='net/netlink/af_netlink.c' line='2060' column='1'/>
<return type-id='f772df6d'/>
</function-decl>
- <function-decl name='__nla_parse' mangled-name='__nla_parse' filepath='lib/nlattr.c' line='680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nla_parse'>
- <parameter type-id='30864cdc' name='tb' filepath='lib/nlattr.c' line='680' column='1'/>
- <parameter type-id='95e97e5e' name='maxtype' filepath='lib/nlattr.c' line='680' column='1'/>
- <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='681' column='1'/>
- <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='681' column='1'/>
- <parameter type-id='109cdb66' name='policy' filepath='lib/nlattr.c' line='682' column='1'/>
- <parameter type-id='f0981eeb' name='validate' filepath='lib/nlattr.c' line='682' column='1'/>
- <parameter type-id='5799dc94' name='extack' filepath='lib/nlattr.c' line='683' column='1'/>
+ <function-decl name='__nla_parse' mangled-name='__nla_parse' filepath='lib/nlattr.c' line='683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nla_parse'>
+ <parameter type-id='30864cdc' name='tb' filepath='lib/nlattr.c' line='683' column='1'/>
+ <parameter type-id='95e97e5e' name='maxtype' filepath='lib/nlattr.c' line='683' column='1'/>
+ <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='684' column='1'/>
+ <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='684' column='1'/>
+ <parameter type-id='109cdb66' name='policy' filepath='lib/nlattr.c' line='685' column='1'/>
+ <parameter type-id='f0981eeb' name='validate' filepath='lib/nlattr.c' line='685' column='1'/>
+ <parameter type-id='5799dc94' name='extack' filepath='lib/nlattr.c' line='686' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__nla_validate' mangled-name='__nla_validate' filepath='lib/nlattr.c' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nla_validate'>
- <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='626' column='1'/>
- <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='626' column='1'/>
- <parameter type-id='95e97e5e' name='maxtype' filepath='lib/nlattr.c' line='626' column='1'/>
- <parameter type-id='109cdb66' name='policy' filepath='lib/nlattr.c' line='627' column='1'/>
- <parameter type-id='f0981eeb' name='validate' filepath='lib/nlattr.c' line='627' column='1'/>
- <parameter type-id='5799dc94' name='extack' filepath='lib/nlattr.c' line='628' column='1'/>
+ <function-decl name='__nla_validate' mangled-name='__nla_validate' filepath='lib/nlattr.c' line='629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nla_validate'>
+ <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='629' column='1'/>
+ <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='629' column='1'/>
+ <parameter type-id='95e97e5e' name='maxtype' filepath='lib/nlattr.c' line='629' column='1'/>
+ <parameter type-id='109cdb66' name='policy' filepath='lib/nlattr.c' line='630' column='1'/>
+ <parameter type-id='f0981eeb' name='validate' filepath='lib/nlattr.c' line='630' column='1'/>
+ <parameter type-id='5799dc94' name='extack' filepath='lib/nlattr.c' line='631' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__nlmsg_put' mangled-name='__nlmsg_put' filepath='net/netlink/af_netlink.c' line='2189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nlmsg_put'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
- <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
- <parameter type-id='19c2251e' name='seq' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
- <parameter type-id='95e97e5e' name='type' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
- <parameter type-id='95e97e5e' name='len' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
- <parameter type-id='95e97e5e' name='flags' filepath='net/netlink/af_netlink.c' line='2189' column='1'/>
+ <function-decl name='__nlmsg_put' mangled-name='__nlmsg_put' filepath='net/netlink/af_netlink.c' line='2199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__nlmsg_put'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
+ <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
+ <parameter type-id='19c2251e' name='seq' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
+ <parameter type-id='95e97e5e' name='type' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
+ <parameter type-id='95e97e5e' name='len' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
+ <parameter type-id='95e97e5e' name='flags' filepath='net/netlink/af_netlink.c' line='2199' column='1'/>
<return type-id='c2074578'/>
</function-decl>
<var-decl name='__num_online_cpus' type-id='49178f86' mangled-name='__num_online_cpus' visibility='default' filepath='kernel/cpu.c' line='2695' column='1' elf-symbol-id='__num_online_cpus'/>
@@ -127162,17 +127396,17 @@
<parameter type-id='b50a4934' name='acquired' filepath='drivers/reset/core.c' line='814' column='1'/>
<return type-id='9f9b8114'/>
</function-decl>
- <function-decl name='__page_file_index' mangled-name='__page_file_index' filepath='mm/swapfile.c' line='3556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_file_index'>
- <parameter type-id='02f11ed4' name='page' filepath='mm/swapfile.c' line='3556' column='1'/>
+ <function-decl name='__page_file_index' mangled-name='__page_file_index' filepath='mm/swapfile.c' line='3557' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_file_index'>
+ <parameter type-id='02f11ed4' name='page' filepath='mm/swapfile.c' line='3557' column='1'/>
<return type-id='7359adad'/>
</function-decl>
- <function-decl name='__page_file_mapping' mangled-name='__page_file_mapping' filepath='mm/swapfile.c' line='3550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_file_mapping'>
- <parameter type-id='02f11ed4' name='page' filepath='mm/swapfile.c' line='3550' column='1'/>
+ <function-decl name='__page_file_mapping' mangled-name='__page_file_mapping' filepath='mm/swapfile.c' line='3551' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_file_mapping'>
+ <parameter type-id='02f11ed4' name='page' filepath='mm/swapfile.c' line='3551' column='1'/>
<return type-id='f57039f0'/>
</function-decl>
- <function-decl name='__page_frag_cache_drain' mangled-name='__page_frag_cache_drain' filepath='mm/page_alloc.c' line='5691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_frag_cache_drain'>
- <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='5691' column='1'/>
- <parameter type-id='f0981eeb' name='count' filepath='mm/page_alloc.c' line='5691' column='1'/>
+ <function-decl name='__page_frag_cache_drain' mangled-name='__page_frag_cache_drain' filepath='mm/page_alloc.c' line='5694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_frag_cache_drain'>
+ <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='5694' column='1'/>
+ <parameter type-id='f0981eeb' name='count' filepath='mm/page_alloc.c' line='5694' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='__page_mapcount' mangled-name='__page_mapcount' filepath='mm/util.c' line='822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__page_mapcount'>
@@ -127452,12 +127686,12 @@
<parameter type-id='75396bad' name='sbq' filepath='lib/sbitmap.c' line='486' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__scsi_add_device' mangled-name='__scsi_add_device' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__scsi_add_device'>
- <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
- <parameter type-id='6e160b14' name='channel' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
- <parameter type-id='6e160b14' name='id' filepath='drivers/scsi/scsi_scan.c' line='1537' column='1'/>
- <parameter type-id='91ce1af9' name='lun' filepath='drivers/scsi/scsi_scan.c' line='1537' column='1'/>
- <parameter type-id='eaa32e2f' name='hostdata' filepath='drivers/scsi/scsi_scan.c' line='1537' column='1'/>
+ <function-decl name='__scsi_add_device' mangled-name='__scsi_add_device' filepath='drivers/scsi/scsi_scan.c' line='1535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__scsi_add_device'>
+ <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1535' column='1'/>
+ <parameter type-id='6e160b14' name='channel' filepath='drivers/scsi/scsi_scan.c' line='1535' column='1'/>
+ <parameter type-id='6e160b14' name='id' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
+ <parameter type-id='91ce1af9' name='lun' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
+ <parameter type-id='eaa32e2f' name='hostdata' filepath='drivers/scsi/scsi_scan.c' line='1536' column='1'/>
<return type-id='eb572b74'/>
</function-decl>
<function-decl name='__scsi_execute' mangled-name='__scsi_execute' filepath='drivers/scsi/scsi_lib.c' line='208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__scsi_execute'>
@@ -127548,8 +127782,8 @@
<parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='3068' column='1'/>
<return type-id='7dac1e36'/>
</function-decl>
- <function-decl name='__skb_ext_put' mangled-name='__skb_ext_put' filepath='net/core/skbuff.c' line='6603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_ext_put'>
- <parameter type-id='374692c7' name='ext' filepath='net/core/skbuff.c' line='6603' column='1'/>
+ <function-decl name='__skb_ext_put' mangled-name='__skb_ext_put' filepath='net/core/skbuff.c' line='6602' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_ext_put'>
+ <parameter type-id='374692c7' name='ext' filepath='net/core/skbuff.c' line='6602' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='__skb_flow_dissect' mangled-name='__skb_flow_dissect' filepath='net/core/flow_dissector.c' line='915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__skb_flow_dissect'>
@@ -127620,7 +127854,7 @@
<parameter type-id='95e97e5e' name='idx' filepath='kernel/rcu/srcutree.c' line='416' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='__stack_chk_fail' mangled-name='__stack_chk_fail' filepath='kernel/panic.c' line='682' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__stack_chk_fail'>
+ <function-decl name='__stack_chk_fail' mangled-name='__stack_chk_fail' filepath='kernel/panic.c' line='750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__stack_chk_fail'>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='__sw_hweight16' mangled-name='__sw_hweight16' filepath='lib/hweight.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sw_hweight16'>
@@ -127664,9 +127898,9 @@
<parameter type-id='b816e1d0' name='ns' filepath='kernel/pid.c' line='494' column='1'/>
<return type-id='587f89d2'/>
</function-decl>
- <function-decl name='__task_rq_lock' mangled-name='__task_rq_lock' filepath='kernel/sched/core.c' line='564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__task_rq_lock'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='564' column='1'/>
- <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='564' column='1'/>
+ <function-decl name='__task_rq_lock' mangled-name='__task_rq_lock' filepath='kernel/sched/core.c' line='561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__task_rq_lock'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='561' column='1'/>
+ <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='561' column='1'/>
<return type-id='6ed6b432'/>
</function-decl>
<function-decl name='__tasklet_hi_schedule' mangled-name='__tasklet_hi_schedule' filepath='kernel/softirq.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__tasklet_hi_schedule'>
@@ -128594,12 +128828,12 @@
<parameter type-id='d8e6b335' name='already_on_hb' filepath='include/trace/hooks/futex.h' line='24' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_alter_mutex_list_add' mangled-name='__traceiter_android_vh_alter_mutex_list_add' filepath='include/trace/hooks/dtask.h' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alter_mutex_list_add'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
- <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
- <parameter type-id='3ca21ae3' name='waiter' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
- <parameter type-id='e84b031a' name='list' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
- <parameter type-id='d8e6b335' name='already_on_list' filepath='include/trace/hooks/dtask.h' line='61' column='1'/>
+ <function-decl name='__traceiter_android_vh_alter_mutex_list_add' mangled-name='__traceiter_android_vh_alter_mutex_list_add' filepath='include/trace/hooks/dtask.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alter_mutex_list_add'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+ <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+ <parameter type-id='3ca21ae3' name='waiter' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+ <parameter type-id='e84b031a' name='list' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+ <parameter type-id='d8e6b335' name='already_on_list' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_alter_rwsem_list_add' mangled-name='__traceiter_android_vh_alter_rwsem_list_add' filepath='include/trace/hooks/rwsem.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_alter_rwsem_list_add'>
@@ -128649,56 +128883,56 @@
<parameter type-id='d8e6b335' name='need_ignore' filepath='include/trace/hooks/audio_usboffload.h' line='30' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_alloc_new_buf_locked' mangled-name='__traceiter_android_vh_binder_alloc_new_buf_locked' filepath='include/trace/hooks/binder.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_alloc_new_buf_locked'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='86' column='1'/>
- <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/binder.h' line='86' column='1'/>
- <parameter type-id='78c01427' name='free_async_space' filepath='include/trace/hooks/binder.h' line='86' column='1'/>
- <parameter type-id='95e97e5e' name='is_async' filepath='include/trace/hooks/binder.h' line='86' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_alloc_new_buf_locked' mangled-name='__traceiter_android_vh_binder_alloc_new_buf_locked' filepath='include/trace/hooks/binder.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_alloc_new_buf_locked'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
+ <parameter type-id='b59d7dce' name='size' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
+ <parameter type-id='78c01427' name='free_async_space' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
+ <parameter type-id='95e97e5e' name='is_async' filepath='include/trace/hooks/binder.h' line='82' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_del_ref' mangled-name='__traceiter_android_vh_binder_del_ref' filepath='include/trace/hooks/binder.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_del_ref'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='108' column='1'/>
- <parameter type-id='f23e2572' name='proc' filepath='include/trace/hooks/binder.h' line='108' column='1'/>
- <parameter type-id='8f92235e' name='ref_desc' filepath='include/trace/hooks/binder.h' line='108' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_del_ref' mangled-name='__traceiter_android_vh_binder_del_ref' filepath='include/trace/hooks/binder.h' line='104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_del_ref'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='104' column='1'/>
+ <parameter type-id='f23e2572' name='proc' filepath='include/trace/hooks/binder.h' line='104' column='1'/>
+ <parameter type-id='8f92235e' name='ref_desc' filepath='include/trace/hooks/binder.h' line='104' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_free_proc' mangled-name='__traceiter_android_vh_binder_free_proc' filepath='include/trace/hooks/binder.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_free_proc'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='74' column='1'/>
- <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='74' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_free_proc' mangled-name='__traceiter_android_vh_binder_free_proc' filepath='include/trace/hooks/binder.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_free_proc'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
+ <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_has_work_ilocked' mangled-name='__traceiter_android_vh_binder_has_work_ilocked' filepath='include/trace/hooks/binder.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_has_work_ilocked'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='83' column='1'/>
- <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='83' column='1'/>
- <parameter type-id='b50a4934' name='do_proc_work' filepath='include/trace/hooks/binder.h' line='83' column='1'/>
- <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/binder.h' line='83' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_has_work_ilocked' mangled-name='__traceiter_android_vh_binder_has_work_ilocked' filepath='include/trace/hooks/binder.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_has_work_ilocked'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
+ <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
+ <parameter type-id='b50a4934' name='do_proc_work' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
+ <parameter type-id='7292109c' name='ret' filepath='include/trace/hooks/binder.h' line='79' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_looper_state_registered' mangled-name='__traceiter_android_vh_binder_looper_state_registered' filepath='include/trace/hooks/binder.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_looper_state_registered'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='67' column='1'/>
- <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='67' column='1'/>
- <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='67' column='1'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='__traceiter_android_vh_binder_new_ref' mangled-name='__traceiter_android_vh_binder_new_ref' filepath='include/trace/hooks/binder.h' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_new_ref'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='105' column='1'/>
- <parameter type-id='f23e2572' name='proc' filepath='include/trace/hooks/binder.h' line='105' column='1'/>
- <parameter type-id='8f92235e' name='ref_desc' filepath='include/trace/hooks/binder.h' line='105' column='1'/>
- <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='105' column='1'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='__traceiter_android_vh_binder_preset' mangled-name='__traceiter_android_vh_binder_preset' filepath='include/trace/hooks/binder.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_preset'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='97' column='1'/>
- <parameter type-id='030d0b18' name='hhead' filepath='include/trace/hooks/binder.h' line='97' column='1'/>
- <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/binder.h' line='97' column='1'/>
- <return type-id='95e97e5e'/>
- </function-decl>
- <function-decl name='__traceiter_android_vh_binder_print_transaction_info' mangled-name='__traceiter_android_vh_binder_print_transaction_info' filepath='include/trace/hooks/binder.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_print_transaction_info'>
+ <function-decl name='__traceiter_android_vh_binder_looper_state_registered' mangled-name='__traceiter_android_vh_binder_looper_state_registered' filepath='include/trace/hooks/binder.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_looper_state_registered'>
<parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
- <parameter type-id='f8dc9def' name='m' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
+ <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
<parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
- <parameter type-id='80f4b756' name='prefix' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
- <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='63' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='__traceiter_android_vh_binder_new_ref' mangled-name='__traceiter_android_vh_binder_new_ref' filepath='include/trace/hooks/binder.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_new_ref'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+ <parameter type-id='f23e2572' name='proc' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+ <parameter type-id='8f92235e' name='ref_desc' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+ <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='101' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='__traceiter_android_vh_binder_preset' mangled-name='__traceiter_android_vh_binder_preset' filepath='include/trace/hooks/binder.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_preset'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
+ <parameter type-id='030d0b18' name='hhead' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
+ <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='__traceiter_android_vh_binder_print_transaction_info' mangled-name='__traceiter_android_vh_binder_print_transaction_info' filepath='include/trace/hooks/binder.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_print_transaction_info'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+ <parameter type-id='f8dc9def' name='m' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+ <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+ <parameter type-id='80f4b756' name='prefix' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+ <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_binder_priority_skip' mangled-name='__traceiter_android_vh_binder_priority_skip' filepath='include/trace/hooks/binder.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_priority_skip'>
@@ -128707,48 +128941,48 @@
<parameter type-id='d8e6b335' name='skip' filepath='include/trace/hooks/binder.h' line='28' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_proc_transaction' mangled-name='__traceiter_android_vh_binder_proc_transaction' filepath='include/trace/hooks/binder.h' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
- <parameter type-id='f23e2572' name='caller_task' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
- <parameter type-id='f23e2572' name='binder_proc_task' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
- <parameter type-id='f23e2572' name='binder_th_task' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
- <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
- <parameter type-id='f0981eeb' name='code' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
- <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='100' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_proc_transaction' mangled-name='__traceiter_android_vh_binder_proc_transaction' filepath='include/trace/hooks/binder.h' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+ <parameter type-id='f23e2572' name='caller_task' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+ <parameter type-id='f23e2572' name='binder_proc_task' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+ <parameter type-id='f23e2572' name='binder_th_task' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+ <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+ <parameter type-id='f0981eeb' name='code' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
+ <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='96' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_proc_transaction_entry' mangled-name='__traceiter_android_vh_binder_proc_transaction_entry' filepath='include/trace/hooks/binder.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction_entry'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
- <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
- <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
- <parameter type-id='1ae16c8a' name='thread' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
- <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
- <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
- <parameter type-id='b50a4934' name='sync' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
- <parameter type-id='d8e6b335' name='skip' filepath='include/trace/hooks/binder.h' line='50' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_proc_transaction_entry' mangled-name='__traceiter_android_vh_binder_proc_transaction_entry' filepath='include/trace/hooks/binder.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction_entry'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+ <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+ <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+ <parameter type-id='1ae16c8a' name='thread' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+ <parameter type-id='95e97e5e' name='node_debug_id' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+ <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+ <parameter type-id='b50a4934' name='sync' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
+ <parameter type-id='d8e6b335' name='skip' filepath='include/trace/hooks/binder.h' line='46' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_proc_transaction_finish' mangled-name='__traceiter_android_vh_binder_proc_transaction_finish' filepath='include/trace/hooks/binder.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction_finish'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
- <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
- <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
- <parameter type-id='f23e2572' name='binder_th_task' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
- <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
- <parameter type-id='b50a4934' name='sync' filepath='include/trace/hooks/binder.h' line='59' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_proc_transaction_finish' mangled-name='__traceiter_android_vh_binder_proc_transaction_finish' filepath='include/trace/hooks/binder.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_proc_transaction_finish'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+ <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+ <parameter type-id='f4c3bb4c' name='t' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+ <parameter type-id='f23e2572' name='binder_th_task' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+ <parameter type-id='b50a4934' name='pending_async' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+ <parameter type-id='b50a4934' name='sync' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_read_done' mangled-name='__traceiter_android_vh_binder_read_done' filepath='include/trace/hooks/binder.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_read_done'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='80' column='1'/>
- <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='80' column='1'/>
- <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='80' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_read_done' mangled-name='__traceiter_android_vh_binder_read_done' filepath='include/trace/hooks/binder.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_read_done'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='76' column='1'/>
+ <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='76' column='1'/>
+ <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='76' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_reply' mangled-name='__traceiter_android_vh_binder_reply' filepath='include/trace/hooks/binder.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_reply'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
- <parameter type-id='d1cf113c' name='target_proc' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
- <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
- <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
- <parameter type-id='55866c73' name='tr' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_reply' mangled-name='__traceiter_android_vh_binder_reply' filepath='include/trace/hooks/binder.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_reply'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+ <parameter type-id='d1cf113c' name='target_proc' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+ <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+ <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
+ <parameter type-id='55866c73' name='tr' filepath='include/trace/hooks/binder.h' line='85' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_binder_restore_priority' mangled-name='__traceiter_android_vh_binder_restore_priority' filepath='include/trace/hooks/binder.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_restore_priority'>
@@ -128757,12 +128991,12 @@
<parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/binder.h' line='34' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_select_worklist_ilocked' mangled-name='__traceiter_android_vh_binder_select_worklist_ilocked' filepath='include/trace/hooks/binder.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_select_worklist_ilocked'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
- <parameter type-id='de160490' name='list' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
- <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
- <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
- <parameter type-id='95e97e5e' name='wait_for_proc_work' filepath='include/trace/hooks/binder.h' line='55' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_select_worklist_ilocked' mangled-name='__traceiter_android_vh_binder_select_worklist_ilocked' filepath='include/trace/hooks/binder.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_select_worklist_ilocked'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+ <parameter type-id='de160490' name='list' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+ <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+ <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
+ <parameter type-id='95e97e5e' name='wait_for_proc_work' filepath='include/trace/hooks/binder.h' line='51' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_binder_set_priority' mangled-name='__traceiter_android_vh_binder_set_priority' filepath='include/trace/hooks/binder.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_set_priority'>
@@ -128771,25 +129005,25 @@
<parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/binder.h' line='31' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_thread_read' mangled-name='__traceiter_android_vh_binder_thread_read' filepath='include/trace/hooks/binder.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_thread_read'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
- <parameter type-id='de160490' name='list' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
- <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
- <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='70' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_thread_read' mangled-name='__traceiter_android_vh_binder_thread_read' filepath='include/trace/hooks/binder.h' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_thread_read'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
+ <parameter type-id='de160490' name='list' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
+ <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
+ <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='66' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_thread_release' mangled-name='__traceiter_android_vh_binder_thread_release' filepath='include/trace/hooks/binder.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_thread_release'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='77' column='1'/>
- <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='77' column='1'/>
- <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='77' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_thread_release' mangled-name='__traceiter_android_vh_binder_thread_release' filepath='include/trace/hooks/binder.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_thread_release'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='73' column='1'/>
+ <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='73' column='1'/>
+ <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='73' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_binder_trans' mangled-name='__traceiter_android_vh_binder_trans' filepath='include/trace/hooks/binder.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_trans'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
- <parameter type-id='d1cf113c' name='target_proc' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
- <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
- <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
- <parameter type-id='55866c73' name='tr' filepath='include/trace/hooks/binder.h' line='93' column='1'/>
+ <function-decl name='__traceiter_android_vh_binder_trans' mangled-name='__traceiter_android_vh_binder_trans' filepath='include/trace/hooks/binder.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_trans'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+ <parameter type-id='d1cf113c' name='target_proc' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+ <parameter type-id='d1cf113c' name='proc' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+ <parameter type-id='dd695fa4' name='thread' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
+ <parameter type-id='55866c73' name='tr' filepath='include/trace/hooks/binder.h' line='89' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_binder_transaction_init' mangled-name='__traceiter_android_vh_binder_transaction_init' filepath='include/trace/hooks/binder.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_binder_transaction_init'>
@@ -128972,10 +129206,10 @@
<parameter type-id='fb55efa1' name='bio' filepath='include/trace/hooks/direct_io.h' line='14' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_disable_thermal_cooling_stats' mangled-name='__traceiter_android_vh_disable_thermal_cooling_stats' filepath='include/trace/hooks/thermal.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_disable_thermal_cooling_stats'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
- <parameter type-id='2feec21f' name='cdev' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
- <parameter type-id='7292109c' name='disable_stats' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
+ <function-decl name='__traceiter_android_vh_disable_thermal_cooling_stats' mangled-name='__traceiter_android_vh_disable_thermal_cooling_stats' filepath='include/trace/hooks/thermal.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_disable_thermal_cooling_stats'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
+ <parameter type-id='2feec21f' name='cdev' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
+ <parameter type-id='7292109c' name='disable_stats' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_dm_update_clone_bio' mangled-name='__traceiter_android_vh_dm_update_clone_bio' filepath='include/trace/hooks/dm.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_dm_update_clone_bio'>
@@ -129175,9 +129409,9 @@
<parameter type-id='95e97e5e' name='target_nr' filepath='include/trace/hooks/futex.h' line='60' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_get_thermal_zone_device' mangled-name='__traceiter_android_vh_get_thermal_zone_device' filepath='include/trace/hooks/thermal.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_get_thermal_zone_device'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='45' column='1'/>
- <parameter type-id='404b1300' name='tz' filepath='include/trace/hooks/thermal.h' line='45' column='1'/>
+ <function-decl name='__traceiter_android_vh_get_thermal_zone_device' mangled-name='__traceiter_android_vh_get_thermal_zone_device' filepath='include/trace/hooks/thermal.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_get_thermal_zone_device'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
+ <parameter type-id='404b1300' name='tz' filepath='include/trace/hooks/thermal.h' line='49' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_gic_resume' mangled-name='__traceiter_android_vh_gic_resume' filepath='include/trace/hooks/gic_v3.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_gic_resume'>
@@ -129431,10 +129665,10 @@
<parameter type-id='df4b7819' name='mm' filepath='include/trace/hooks/sched.h' line='431' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_modify_thermal_cpu_get_power' mangled-name='__traceiter_android_vh_modify_thermal_cpu_get_power' filepath='include/trace/hooks/thermal.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_cpu_get_power'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
- <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
- <parameter type-id='f9409001' name='power' filepath='include/trace/hooks/thermal.h' line='53' column='1'/>
+ <function-decl name='__traceiter_android_vh_modify_thermal_cpu_get_power' mangled-name='__traceiter_android_vh_modify_thermal_cpu_get_power' filepath='include/trace/hooks/thermal.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_cpu_get_power'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='57' column='1'/>
+ <parameter type-id='343c3ae4' name='policy' filepath='include/trace/hooks/thermal.h' line='57' column='1'/>
+ <parameter type-id='f9409001' name='power' filepath='include/trace/hooks/thermal.h' line='57' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_modify_thermal_request_freq' mangled-name='__traceiter_android_vh_modify_thermal_request_freq' filepath='include/trace/hooks/thermal.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_request_freq'>
@@ -129449,14 +129683,45 @@
<parameter type-id='807869d3' name='target_freq' filepath='include/trace/hooks/thermal.h' line='25' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='__traceiter_android_vh_modify_thermal_throttle_update' mangled-name='__traceiter_android_vh_modify_thermal_throttle_update' filepath='include/trace/hooks/thermal.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_modify_thermal_throttle_update'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
+ <parameter type-id='404b1300' name='tz' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
+ <parameter type-id='d8e6b335' name='update' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='__traceiter_android_vh_mpam_set' mangled-name='__traceiter_android_vh_mpam_set' filepath='include/trace/hooks/mpam.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mpam_set'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/mpam.h' line='19' column='1'/>
+ <parameter type-id='f23e2572' name='prev' filepath='include/trace/hooks/mpam.h' line='19' column='1'/>
+ <parameter type-id='f23e2572' name='next' filepath='include/trace/hooks/mpam.h' line='19' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='__traceiter_android_vh_mutex_can_spin_on_owner' mangled-name='__traceiter_android_vh_mutex_can_spin_on_owner' filepath='include/trace/hooks/dtask.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_can_spin_on_owner'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='41' column='1'/>
+ <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='41' column='1'/>
+ <parameter type-id='7292109c' name='retval' filepath='include/trace/hooks/dtask.h' line='41' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='__traceiter_android_vh_mutex_init' mangled-name='__traceiter_android_vh_mutex_init' filepath='include/trace/hooks/dtask.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_init'>
<parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='32' column='1'/>
<parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='32' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_mutex_unlock_slowpath' mangled-name='__traceiter_android_vh_mutex_unlock_slowpath' filepath='include/trace/hooks/dtask.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_unlock_slowpath'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
- <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
+ <function-decl name='__traceiter_android_vh_mutex_opt_spin_finish' mangled-name='__traceiter_android_vh_mutex_opt_spin_finish' filepath='include/trace/hooks/dtask.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_opt_spin_finish'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='38' column='1'/>
+ <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='38' column='1'/>
+ <parameter type-id='b50a4934' name='taken' filepath='include/trace/hooks/dtask.h' line='38' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='__traceiter_android_vh_mutex_opt_spin_start' mangled-name='__traceiter_android_vh_mutex_opt_spin_start' filepath='include/trace/hooks/dtask.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_opt_spin_start'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+ <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+ <parameter type-id='d8e6b335' name='time_out' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+ <parameter type-id='7292109c' name='cnt' filepath='include/trace/hooks/dtask.h' line='35' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='__traceiter_android_vh_mutex_unlock_slowpath' mangled-name='__traceiter_android_vh_mutex_unlock_slowpath' filepath='include/trace/hooks/dtask.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_unlock_slowpath'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='85' column='1'/>
+ <parameter type-id='e0ea832a' name='lock' filepath='include/trace/hooks/dtask.h' line='85' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_mutex_wait_finish' mangled-name='__traceiter_android_vh_mutex_wait_finish' filepath='include/trace/hooks/dtask.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_mutex_wait_finish'>
@@ -129541,28 +129806,33 @@
<parameter type-id='7292109c' name='flag' filepath='include/trace/hooks/printk.h' line='12' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_record_mutex_lock_starttime' mangled-name='__traceiter_android_vh_record_mutex_lock_starttime' filepath='include/trace/hooks/dtask.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_mutex_lock_starttime'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
- <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
- <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
+ <function-decl name='__traceiter_android_vh_psi_group' mangled-name='__traceiter_android_vh_psi_group' filepath='include/trace/hooks/psi.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_psi_group'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/psi.h' line='18' column='1'/>
+ <parameter type-id='316cdcd3' name='group' filepath='include/trace/hooks/psi.h' line='18' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_record_pcpu_rwsem_starttime' mangled-name='__traceiter_android_vh_record_pcpu_rwsem_starttime' filepath='include/trace/hooks/dtask.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_pcpu_rwsem_starttime'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
- <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
- <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='79' column='1'/>
+ <function-decl name='__traceiter_android_vh_record_mutex_lock_starttime' mangled-name='__traceiter_android_vh_record_mutex_lock_starttime' filepath='include/trace/hooks/dtask.h' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_mutex_lock_starttime'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='88' column='1'/>
+ <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='88' column='1'/>
+ <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='88' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_record_rtmutex_lock_starttime' mangled-name='__traceiter_android_vh_record_rtmutex_lock_starttime' filepath='include/trace/hooks/dtask.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_rtmutex_lock_starttime'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='73' column='1'/>
- <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='73' column='1'/>
- <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='73' column='1'/>
+ <function-decl name='__traceiter_android_vh_record_pcpu_rwsem_starttime' mangled-name='__traceiter_android_vh_record_pcpu_rwsem_starttime' filepath='include/trace/hooks/dtask.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_pcpu_rwsem_starttime'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='97' column='1'/>
+ <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='97' column='1'/>
+ <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='97' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_record_rwsem_lock_starttime' mangled-name='__traceiter_android_vh_record_rwsem_lock_starttime' filepath='include/trace/hooks/dtask.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_rwsem_lock_starttime'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='76' column='1'/>
- <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='76' column='1'/>
- <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='76' column='1'/>
+ <function-decl name='__traceiter_android_vh_record_rtmutex_lock_starttime' mangled-name='__traceiter_android_vh_record_rtmutex_lock_starttime' filepath='include/trace/hooks/dtask.h' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_rtmutex_lock_starttime'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='91' column='1'/>
+ <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='91' column='1'/>
+ <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='91' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='__traceiter_android_vh_record_rwsem_lock_starttime' mangled-name='__traceiter_android_vh_record_rwsem_lock_starttime' filepath='include/trace/hooks/dtask.h' line='94' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_record_rwsem_lock_starttime'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='94' column='1'/>
+ <parameter type-id='f23e2572' name='tsk' filepath='include/trace/hooks/dtask.h' line='94' column='1'/>
+ <parameter type-id='7359adad' name='settime_jiffies' filepath='include/trace/hooks/dtask.h' line='94' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_regmap_update' mangled-name='__traceiter_android_vh_regmap_update' filepath='include/trace/hooks/regmap.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_regmap_update'>
@@ -129591,14 +129861,34 @@
<parameter type-id='5771c601' name='rproc' filepath='include/trace/hooks/remoteproc.h' line='24' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='__traceiter_android_vh_rwsem_can_spin_on_owner' mangled-name='__traceiter_android_vh_rwsem_can_spin_on_owner' filepath='include/trace/hooks/dtask.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_can_spin_on_owner'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
+ <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
+ <parameter type-id='d8e6b335' name='ret' filepath='include/trace/hooks/dtask.h' line='70' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='__traceiter_android_vh_rwsem_init' mangled-name='__traceiter_android_vh_rwsem_init' filepath='include/trace/hooks/rwsem.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_init'>
<parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/rwsem.h' line='20' column='1'/>
<parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/rwsem.h' line='20' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_rwsem_read_wait_start' mangled-name='__traceiter_android_vh_rwsem_read_wait_start' filepath='include/trace/hooks/dtask.h' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_read_wait_start'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='43' column='1'/>
- <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='43' column='1'/>
+ <function-decl name='__traceiter_android_vh_rwsem_opt_spin_finish' mangled-name='__traceiter_android_vh_rwsem_opt_spin_finish' filepath='include/trace/hooks/dtask.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_opt_spin_finish'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
+ <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
+ <parameter type-id='b50a4934' name='taken' filepath='include/trace/hooks/dtask.h' line='67' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='__traceiter_android_vh_rwsem_opt_spin_start' mangled-name='__traceiter_android_vh_rwsem_opt_spin_start' filepath='include/trace/hooks/dtask.h' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_opt_spin_start'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+ <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+ <parameter type-id='d8e6b335' name='time_out' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+ <parameter type-id='7292109c' name='cnt' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+ <parameter type-id='b50a4934' name='chk_only' filepath='include/trace/hooks/dtask.h' line='64' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='__traceiter_android_vh_rwsem_read_wait_start' mangled-name='__traceiter_android_vh_rwsem_read_wait_start' filepath='include/trace/hooks/dtask.h' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_read_wait_start'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='52' column='1'/>
+ <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='52' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_rwsem_wake' mangled-name='__traceiter_android_vh_rwsem_wake' filepath='include/trace/hooks/rwsem.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_wake'>
@@ -129616,9 +129906,9 @@
<parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/rwsem.h' line='26' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_rwsem_write_wait_start' mangled-name='__traceiter_android_vh_rwsem_write_wait_start' filepath='include/trace/hooks/dtask.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_write_wait_start'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='49' column='1'/>
- <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='49' column='1'/>
+ <function-decl name='__traceiter_android_vh_rwsem_write_wait_start' mangled-name='__traceiter_android_vh_rwsem_write_wait_start' filepath='include/trace/hooks/dtask.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_rwsem_write_wait_start'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='58' column='1'/>
+ <parameter type-id='9b58df93' name='sem' filepath='include/trace/hooks/dtask.h' line='58' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_save_cpu_resume' mangled-name='__traceiter_android_vh_save_cpu_resume' filepath='include/trace/hooks/bl_hib.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_save_cpu_resume'>
@@ -129652,9 +129942,9 @@
<parameter type-id='7292109c' name='retval' filepath='include/trace/hooks/sched.h' line='423' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_sched_show_task' mangled-name='__traceiter_android_vh_sched_show_task' filepath='include/trace/hooks/dtask.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sched_show_task'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='56' column='1'/>
- <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/dtask.h' line='56' column='1'/>
+ <function-decl name='__traceiter_android_vh_sched_show_task' mangled-name='__traceiter_android_vh_sched_show_task' filepath='include/trace/hooks/dtask.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sched_show_task'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/dtask.h' line='74' column='1'/>
+ <parameter type-id='f23e2572' name='task' filepath='include/trace/hooks/dtask.h' line='74' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_sched_stat_runtime_rt' mangled-name='__traceiter_android_vh_sched_stat_runtime_rt' filepath='include/trace/hooks/sched.h' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_sched_stat_runtime_rt'>
@@ -129775,9 +130065,9 @@
<parameter type-id='eaa32e2f' name='data' filepath='include/trace/hooks/sysrqcrash.h' line='13' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='__traceiter_android_vh_thermal_power_cap' mangled-name='__traceiter_android_vh_thermal_power_cap' filepath='include/trace/hooks/thermal.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_thermal_power_cap'>
- <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
- <parameter type-id='f9409001' name='power_range' filepath='include/trace/hooks/thermal.h' line='41' column='1'/>
+ <function-decl name='__traceiter_android_vh_thermal_power_cap' mangled-name='__traceiter_android_vh_thermal_power_cap' filepath='include/trace/hooks/thermal.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_thermal_power_cap'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/hooks/thermal.h' line='45' column='1'/>
+ <parameter type-id='f9409001' name='power_range' filepath='include/trace/hooks/thermal.h' line='45' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='__traceiter_android_vh_thermal_register' mangled-name='__traceiter_android_vh_thermal_register' filepath='include/trace/hooks/thermal.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_android_vh_thermal_register'>
@@ -130355,6 +130645,12 @@
<parameter type-id='95e97e5e' name='ret' filepath='drivers/usb/gadget/udc/./trace.h' line='124' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='__traceiter_wbc_writepage' mangled-name='__traceiter_wbc_writepage' filepath='include/trace/events/writeback.h' line='496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_wbc_writepage'>
+ <parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/writeback.h' line='496' column='1'/>
+ <parameter type-id='c2c60445' name='wbc' filepath='include/trace/events/writeback.h' line='496' column='1'/>
+ <parameter type-id='ef4fae1b' name='bdi' filepath='include/trace/events/writeback.h' line='496' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='__traceiter_workqueue_execute_end' mangled-name='__traceiter_workqueue_execute_end' filepath='include/trace/events/workqueue.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__traceiter_workqueue_execute_end'>
<parameter type-id='eaa32e2f' name='__data' filepath='include/trace/events/workqueue.h' line='108' column='1'/>
<parameter type-id='83c1bde6' name='work' filepath='include/trace/events/workqueue.h' line='108' column='1'/>
@@ -130516,7 +130812,7 @@
<var-decl name='__tracepoint_android_vh_alloc_pages_reclaim_bypass' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alloc_pages_reclaim_bypass' visibility='default' filepath='include/trace/hooks/mm.h' line='139' column='1' elf-symbol-id='__tracepoint_android_vh_alloc_pages_reclaim_bypass'/>
<var-decl name='__tracepoint_android_vh_alloc_pages_slowpath' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alloc_pages_slowpath' visibility='default' filepath='include/trace/hooks/mm.h' line='58' column='1' elf-symbol-id='__tracepoint_android_vh_alloc_pages_slowpath'/>
<var-decl name='__tracepoint_android_vh_alter_futex_plist_add' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alter_futex_plist_add' visibility='default' filepath='include/trace/hooks/futex.h' line='24' column='1' elf-symbol-id='__tracepoint_android_vh_alter_futex_plist_add'/>
- <var-decl name='__tracepoint_android_vh_alter_mutex_list_add' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alter_mutex_list_add' visibility='default' filepath='include/trace/hooks/dtask.h' line='61' column='1' elf-symbol-id='__tracepoint_android_vh_alter_mutex_list_add'/>
+ <var-decl name='__tracepoint_android_vh_alter_mutex_list_add' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alter_mutex_list_add' visibility='default' filepath='include/trace/hooks/dtask.h' line='79' column='1' elf-symbol-id='__tracepoint_android_vh_alter_mutex_list_add'/>
<var-decl name='__tracepoint_android_vh_alter_rwsem_list_add' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_alter_rwsem_list_add' visibility='default' filepath='include/trace/hooks/rwsem.h' line='29' column='1' elf-symbol-id='__tracepoint_android_vh_alter_rwsem_list_add'/>
<var-decl name='__tracepoint_android_vh_arch_set_freq_scale' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_arch_set_freq_scale' visibility='default' filepath='include/trace/hooks/topology.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_arch_set_freq_scale'/>
<var-decl name='__tracepoint_android_vh_atomic_remove_fb' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_atomic_remove_fb' visibility='default' filepath='include/trace/hooks/drm_framebuffer.h' line='20' column='1' elf-symbol-id='__tracepoint_android_vh_atomic_remove_fb'/>
@@ -130524,26 +130820,26 @@
<var-decl name='__tracepoint_android_vh_audio_usb_offload_ep_action' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_audio_usb_offload_ep_action' visibility='default' filepath='include/trace/hooks/audio_usboffload.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_audio_usb_offload_ep_action'/>
<var-decl name='__tracepoint_android_vh_audio_usb_offload_suspend' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_audio_usb_offload_suspend' visibility='default' filepath='include/trace/hooks/audio_usboffload.h' line='42' column='1' elf-symbol-id='__tracepoint_android_vh_audio_usb_offload_suspend'/>
<var-decl name='__tracepoint_android_vh_audio_usb_offload_synctype' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_audio_usb_offload_synctype' visibility='default' filepath='include/trace/hooks/audio_usboffload.h' line='30' column='1' elf-symbol-id='__tracepoint_android_vh_audio_usb_offload_synctype'/>
- <var-decl name='__tracepoint_android_vh_binder_alloc_new_buf_locked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_alloc_new_buf_locked' visibility='default' filepath='include/trace/hooks/binder.h' line='86' column='1' elf-symbol-id='__tracepoint_android_vh_binder_alloc_new_buf_locked'/>
- <var-decl name='__tracepoint_android_vh_binder_del_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_del_ref' visibility='default' filepath='include/trace/hooks/binder.h' line='108' column='1' elf-symbol-id='__tracepoint_android_vh_binder_del_ref'/>
- <var-decl name='__tracepoint_android_vh_binder_free_proc' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_free_proc' visibility='default' filepath='include/trace/hooks/binder.h' line='74' column='1' elf-symbol-id='__tracepoint_android_vh_binder_free_proc'/>
- <var-decl name='__tracepoint_android_vh_binder_has_work_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_has_work_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='83' column='1' elf-symbol-id='__tracepoint_android_vh_binder_has_work_ilocked'/>
- <var-decl name='__tracepoint_android_vh_binder_looper_state_registered' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_looper_state_registered' visibility='default' filepath='include/trace/hooks/binder.h' line='67' column='1' elf-symbol-id='__tracepoint_android_vh_binder_looper_state_registered'/>
- <var-decl name='__tracepoint_android_vh_binder_new_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_new_ref' visibility='default' filepath='include/trace/hooks/binder.h' line='105' column='1' elf-symbol-id='__tracepoint_android_vh_binder_new_ref'/>
- <var-decl name='__tracepoint_android_vh_binder_preset' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_preset' visibility='default' filepath='include/trace/hooks/binder.h' line='97' column='1' elf-symbol-id='__tracepoint_android_vh_binder_preset'/>
- <var-decl name='__tracepoint_android_vh_binder_print_transaction_info' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_print_transaction_info' visibility='default' filepath='include/trace/hooks/binder.h' line='63' column='1' elf-symbol-id='__tracepoint_android_vh_binder_print_transaction_info'/>
+ <var-decl name='__tracepoint_android_vh_binder_alloc_new_buf_locked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_alloc_new_buf_locked' visibility='default' filepath='include/trace/hooks/binder.h' line='82' column='1' elf-symbol-id='__tracepoint_android_vh_binder_alloc_new_buf_locked'/>
+ <var-decl name='__tracepoint_android_vh_binder_del_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_del_ref' visibility='default' filepath='include/trace/hooks/binder.h' line='104' column='1' elf-symbol-id='__tracepoint_android_vh_binder_del_ref'/>
+ <var-decl name='__tracepoint_android_vh_binder_free_proc' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_free_proc' visibility='default' filepath='include/trace/hooks/binder.h' line='70' column='1' elf-symbol-id='__tracepoint_android_vh_binder_free_proc'/>
+ <var-decl name='__tracepoint_android_vh_binder_has_work_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_has_work_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='79' column='1' elf-symbol-id='__tracepoint_android_vh_binder_has_work_ilocked'/>
+ <var-decl name='__tracepoint_android_vh_binder_looper_state_registered' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_looper_state_registered' visibility='default' filepath='include/trace/hooks/binder.h' line='63' column='1' elf-symbol-id='__tracepoint_android_vh_binder_looper_state_registered'/>
+ <var-decl name='__tracepoint_android_vh_binder_new_ref' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_new_ref' visibility='default' filepath='include/trace/hooks/binder.h' line='101' column='1' elf-symbol-id='__tracepoint_android_vh_binder_new_ref'/>
+ <var-decl name='__tracepoint_android_vh_binder_preset' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_preset' visibility='default' filepath='include/trace/hooks/binder.h' line='93' column='1' elf-symbol-id='__tracepoint_android_vh_binder_preset'/>
+ <var-decl name='__tracepoint_android_vh_binder_print_transaction_info' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_print_transaction_info' visibility='default' filepath='include/trace/hooks/binder.h' line='59' column='1' elf-symbol-id='__tracepoint_android_vh_binder_print_transaction_info'/>
<var-decl name='__tracepoint_android_vh_binder_priority_skip' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_priority_skip' visibility='default' filepath='include/trace/hooks/binder.h' line='28' column='1' elf-symbol-id='__tracepoint_android_vh_binder_priority_skip'/>
- <var-decl name='__tracepoint_android_vh_binder_proc_transaction' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction' visibility='default' filepath='include/trace/hooks/binder.h' line='100' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction'/>
- <var-decl name='__tracepoint_android_vh_binder_proc_transaction_entry' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction_entry' visibility='default' filepath='include/trace/hooks/binder.h' line='50' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction_entry'/>
- <var-decl name='__tracepoint_android_vh_binder_proc_transaction_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction_finish' visibility='default' filepath='include/trace/hooks/binder.h' line='59' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction_finish'/>
- <var-decl name='__tracepoint_android_vh_binder_read_done' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_read_done' visibility='default' filepath='include/trace/hooks/binder.h' line='80' column='1' elf-symbol-id='__tracepoint_android_vh_binder_read_done'/>
- <var-decl name='__tracepoint_android_vh_binder_reply' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_reply' visibility='default' filepath='include/trace/hooks/binder.h' line='89' column='1' elf-symbol-id='__tracepoint_android_vh_binder_reply'/>
+ <var-decl name='__tracepoint_android_vh_binder_proc_transaction' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction' visibility='default' filepath='include/trace/hooks/binder.h' line='96' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction'/>
+ <var-decl name='__tracepoint_android_vh_binder_proc_transaction_entry' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction_entry' visibility='default' filepath='include/trace/hooks/binder.h' line='46' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction_entry'/>
+ <var-decl name='__tracepoint_android_vh_binder_proc_transaction_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_proc_transaction_finish' visibility='default' filepath='include/trace/hooks/binder.h' line='55' column='1' elf-symbol-id='__tracepoint_android_vh_binder_proc_transaction_finish'/>
+ <var-decl name='__tracepoint_android_vh_binder_read_done' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_read_done' visibility='default' filepath='include/trace/hooks/binder.h' line='76' column='1' elf-symbol-id='__tracepoint_android_vh_binder_read_done'/>
+ <var-decl name='__tracepoint_android_vh_binder_reply' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_reply' visibility='default' filepath='include/trace/hooks/binder.h' line='85' column='1' elf-symbol-id='__tracepoint_android_vh_binder_reply'/>
<var-decl name='__tracepoint_android_vh_binder_restore_priority' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_restore_priority' visibility='default' filepath='include/trace/hooks/binder.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_binder_restore_priority'/>
- <var-decl name='__tracepoint_android_vh_binder_select_worklist_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_select_worklist_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='55' column='1' elf-symbol-id='__tracepoint_android_vh_binder_select_worklist_ilocked'/>
+ <var-decl name='__tracepoint_android_vh_binder_select_worklist_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_select_worklist_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='51' column='1' elf-symbol-id='__tracepoint_android_vh_binder_select_worklist_ilocked'/>
<var-decl name='__tracepoint_android_vh_binder_set_priority' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_set_priority' visibility='default' filepath='include/trace/hooks/binder.h' line='31' column='1' elf-symbol-id='__tracepoint_android_vh_binder_set_priority'/>
- <var-decl name='__tracepoint_android_vh_binder_thread_read' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_thread_read' visibility='default' filepath='include/trace/hooks/binder.h' line='70' column='1' elf-symbol-id='__tracepoint_android_vh_binder_thread_read'/>
- <var-decl name='__tracepoint_android_vh_binder_thread_release' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_thread_release' visibility='default' filepath='include/trace/hooks/binder.h' line='77' column='1' elf-symbol-id='__tracepoint_android_vh_binder_thread_release'/>
- <var-decl name='__tracepoint_android_vh_binder_trans' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_trans' visibility='default' filepath='include/trace/hooks/binder.h' line='93' column='1' elf-symbol-id='__tracepoint_android_vh_binder_trans'/>
+ <var-decl name='__tracepoint_android_vh_binder_thread_read' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_thread_read' visibility='default' filepath='include/trace/hooks/binder.h' line='66' column='1' elf-symbol-id='__tracepoint_android_vh_binder_thread_read'/>
+ <var-decl name='__tracepoint_android_vh_binder_thread_release' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_thread_release' visibility='default' filepath='include/trace/hooks/binder.h' line='73' column='1' elf-symbol-id='__tracepoint_android_vh_binder_thread_release'/>
+ <var-decl name='__tracepoint_android_vh_binder_trans' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_trans' visibility='default' filepath='include/trace/hooks/binder.h' line='89' column='1' elf-symbol-id='__tracepoint_android_vh_binder_trans'/>
<var-decl name='__tracepoint_android_vh_binder_transaction_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_transaction_init' visibility='default' filepath='include/trace/hooks/binder.h' line='25' column='1' elf-symbol-id='__tracepoint_android_vh_binder_transaction_init'/>
<var-decl name='__tracepoint_android_vh_binder_wait_for_work' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_wait_for_work' visibility='default' filepath='include/trace/hooks/binder.h' line='40' column='1' elf-symbol-id='__tracepoint_android_vh_binder_wait_for_work'/>
<var-decl name='__tracepoint_android_vh_binder_wakeup_ilocked' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_binder_wakeup_ilocked' visibility='default' filepath='include/trace/hooks/binder.h' line='37' column='1' elf-symbol-id='__tracepoint_android_vh_binder_wakeup_ilocked'/>
@@ -130572,7 +130868,7 @@
<var-decl name='__tracepoint_android_vh_cpuidle_psci_exit' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_cpuidle_psci_exit' visibility='default' filepath='include/trace/hooks/cpuidle_psci.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_cpuidle_psci_exit'/>
<var-decl name='__tracepoint_android_vh_del_page_from_lrulist' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_del_page_from_lrulist' visibility='default' filepath='include/trace/hooks/mm.h' line='121' column='1' elf-symbol-id='__tracepoint_android_vh_del_page_from_lrulist'/>
<var-decl name='__tracepoint_android_vh_direct_io_update_bio' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_direct_io_update_bio' visibility='default' filepath='include/trace/hooks/direct_io.h' line='14' column='1' elf-symbol-id='__tracepoint_android_vh_direct_io_update_bio'/>
- <var-decl name='__tracepoint_android_vh_disable_thermal_cooling_stats' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_disable_thermal_cooling_stats' visibility='default' filepath='include/trace/hooks/thermal.h' line='49' column='1' elf-symbol-id='__tracepoint_android_vh_disable_thermal_cooling_stats'/>
+ <var-decl name='__tracepoint_android_vh_disable_thermal_cooling_stats' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_disable_thermal_cooling_stats' visibility='default' filepath='include/trace/hooks/thermal.h' line='53' column='1' elf-symbol-id='__tracepoint_android_vh_disable_thermal_cooling_stats'/>
<var-decl name='__tracepoint_android_vh_dm_update_clone_bio' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dm_update_clone_bio' visibility='default' filepath='include/trace/hooks/dm.h' line='14' column='1' elf-symbol-id='__tracepoint_android_vh_dm_update_clone_bio'/>
<var-decl name='__tracepoint_android_vh_dma_buf_release' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dma_buf_release' visibility='default' filepath='include/trace/hooks/dmabuf.h' line='20' column='1' elf-symbol-id='__tracepoint_android_vh_dma_buf_release'/>
<var-decl name='__tracepoint_android_vh_dmabuf_heap_flags_validation' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_dmabuf_heap_flags_validation' visibility='default' filepath='include/trace/hooks/dmabuf.h' line='25' column='1' elf-symbol-id='__tracepoint_android_vh_dmabuf_heap_flags_validation'/>
@@ -130604,7 +130900,7 @@
<var-decl name='__tracepoint_android_vh_futex_wake_this' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_wake_this' visibility='default' filepath='include/trace/hooks/futex.h' line='55' column='1' elf-symbol-id='__tracepoint_android_vh_futex_wake_this'/>
<var-decl name='__tracepoint_android_vh_futex_wake_traverse_plist' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_wake_traverse_plist' visibility='default' filepath='include/trace/hooks/futex.h' line='50' column='1' elf-symbol-id='__tracepoint_android_vh_futex_wake_traverse_plist'/>
<var-decl name='__tracepoint_android_vh_futex_wake_up_q_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_futex_wake_up_q_finish' visibility='default' filepath='include/trace/hooks/futex.h' line='60' column='1' elf-symbol-id='__tracepoint_android_vh_futex_wake_up_q_finish'/>
- <var-decl name='__tracepoint_android_vh_get_thermal_zone_device' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_get_thermal_zone_device' visibility='default' filepath='include/trace/hooks/thermal.h' line='45' column='1' elf-symbol-id='__tracepoint_android_vh_get_thermal_zone_device'/>
+ <var-decl name='__tracepoint_android_vh_get_thermal_zone_device' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_get_thermal_zone_device' visibility='default' filepath='include/trace/hooks/thermal.h' line='49' column='1' elf-symbol-id='__tracepoint_android_vh_get_thermal_zone_device'/>
<var-decl name='__tracepoint_android_vh_gic_resume' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_gic_resume' visibility='default' filepath='include/trace/hooks/gic_v3.h' line='32' column='1' elf-symbol-id='__tracepoint_android_vh_gic_resume'/>
<var-decl name='__tracepoint_android_vh_gic_set_affinity' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_gic_set_affinity' visibility='default' filepath='include/trace/hooks/gic.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_gic_set_affinity'/>
<var-decl name='__tracepoint_android_vh_gic_suspend' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_gic_suspend' visibility='default' filepath='include/trace/hooks/gic_v3.h' line='35' column='1' elf-symbol-id='__tracepoint_android_vh_gic_suspend'/>
@@ -130646,11 +130942,16 @@
<var-decl name='__tracepoint_android_vh_mmc_sdio_pm_flag_set' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_sdio_pm_flag_set' visibility='default' filepath='include/trace/hooks/mmc.h' line='30' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_sdio_pm_flag_set'/>
<var-decl name='__tracepoint_android_vh_mmc_update_partition_status' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmc_update_partition_status' visibility='default' filepath='include/trace/hooks/mmc.h' line='63' column='1' elf-symbol-id='__tracepoint_android_vh_mmc_update_partition_status'/>
<var-decl name='__tracepoint_android_vh_mmput' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mmput' visibility='default' filepath='include/trace/hooks/sched.h' line='431' column='1' elf-symbol-id='__tracepoint_android_vh_mmput'/>
- <var-decl name='__tracepoint_android_vh_modify_thermal_cpu_get_power' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_cpu_get_power' visibility='default' filepath='include/trace/hooks/thermal.h' line='53' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_cpu_get_power'/>
+ <var-decl name='__tracepoint_android_vh_modify_thermal_cpu_get_power' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_cpu_get_power' visibility='default' filepath='include/trace/hooks/thermal.h' line='57' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_cpu_get_power'/>
<var-decl name='__tracepoint_android_vh_modify_thermal_request_freq' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_request_freq' visibility='default' filepath='include/trace/hooks/thermal.h' line='21' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_request_freq'/>
<var-decl name='__tracepoint_android_vh_modify_thermal_target_freq' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_target_freq' visibility='default' filepath='include/trace/hooks/thermal.h' line='25' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_target_freq'/>
+ <var-decl name='__tracepoint_android_vh_modify_thermal_throttle_update' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_modify_thermal_throttle_update' visibility='default' filepath='include/trace/hooks/thermal.h' line='41' column='1' elf-symbol-id='__tracepoint_android_vh_modify_thermal_throttle_update'/>
+ <var-decl name='__tracepoint_android_vh_mpam_set' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mpam_set' visibility='default' filepath='include/trace/hooks/mpam.h' line='19' column='1' elf-symbol-id='__tracepoint_android_vh_mpam_set'/>
+ <var-decl name='__tracepoint_android_vh_mutex_can_spin_on_owner' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_can_spin_on_owner' visibility='default' filepath='include/trace/hooks/dtask.h' line='41' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_can_spin_on_owner'/>
<var-decl name='__tracepoint_android_vh_mutex_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_init' visibility='default' filepath='include/trace/hooks/dtask.h' line='32' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_init'/>
- <var-decl name='__tracepoint_android_vh_mutex_unlock_slowpath' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_unlock_slowpath' visibility='default' filepath='include/trace/hooks/dtask.h' line='67' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_unlock_slowpath'/>
+ <var-decl name='__tracepoint_android_vh_mutex_opt_spin_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_opt_spin_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='38' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_opt_spin_finish'/>
+ <var-decl name='__tracepoint_android_vh_mutex_opt_spin_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_opt_spin_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='35' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_opt_spin_start'/>
+ <var-decl name='__tracepoint_android_vh_mutex_unlock_slowpath' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_unlock_slowpath' visibility='default' filepath='include/trace/hooks/dtask.h' line='85' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_unlock_slowpath'/>
<var-decl name='__tracepoint_android_vh_mutex_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='29' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_wait_finish'/>
<var-decl name='__tracepoint_android_vh_mutex_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_mutex_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_mutex_wait_start'/>
<var-decl name='__tracepoint_android_vh_page_cache_forced_ra' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_page_cache_forced_ra' visibility='default' filepath='include/trace/hooks/mm.h' line='136' column='1' elf-symbol-id='__tracepoint_android_vh_page_cache_forced_ra'/>
@@ -130666,31 +130967,35 @@
<var-decl name='__tracepoint_android_vh_printk_caller_id' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_printk_caller_id' visibility='default' filepath='include/trace/hooks/printk.h' line='16' column='1' elf-symbol-id='__tracepoint_android_vh_printk_caller_id'/>
<var-decl name='__tracepoint_android_vh_printk_ext_header' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_printk_ext_header' visibility='default' filepath='include/trace/hooks/printk.h' line='22' column='1' elf-symbol-id='__tracepoint_android_vh_printk_ext_header'/>
<var-decl name='__tracepoint_android_vh_printk_hotplug' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_printk_hotplug' visibility='default' filepath='include/trace/hooks/printk.h' line='12' column='1' elf-symbol-id='__tracepoint_android_vh_printk_hotplug'/>
+ <var-decl name='__tracepoint_android_vh_psi_group' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_psi_group' visibility='default' filepath='include/trace/hooks/psi.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_psi_group'/>
<var-decl name='__tracepoint_android_vh_ptype_head' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_ptype_head' visibility='default' filepath='include/trace/hooks/net.h' line='21' column='1' elf-symbol-id='__tracepoint_android_vh_ptype_head'/>
- <var-decl name='__tracepoint_android_vh_record_mutex_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_mutex_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='70' column='1' elf-symbol-id='__tracepoint_android_vh_record_mutex_lock_starttime'/>
- <var-decl name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='79' column='1' elf-symbol-id='__tracepoint_android_vh_record_pcpu_rwsem_starttime'/>
- <var-decl name='__tracepoint_android_vh_record_rtmutex_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_rtmutex_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='73' column='1' elf-symbol-id='__tracepoint_android_vh_record_rtmutex_lock_starttime'/>
- <var-decl name='__tracepoint_android_vh_record_rwsem_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_rwsem_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='76' column='1' elf-symbol-id='__tracepoint_android_vh_record_rwsem_lock_starttime'/>
+ <var-decl name='__tracepoint_android_vh_record_mutex_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_mutex_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='88' column='1' elf-symbol-id='__tracepoint_android_vh_record_mutex_lock_starttime'/>
+ <var-decl name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_pcpu_rwsem_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='97' column='1' elf-symbol-id='__tracepoint_android_vh_record_pcpu_rwsem_starttime'/>
+ <var-decl name='__tracepoint_android_vh_record_rtmutex_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_rtmutex_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='91' column='1' elf-symbol-id='__tracepoint_android_vh_record_rtmutex_lock_starttime'/>
+ <var-decl name='__tracepoint_android_vh_record_rwsem_lock_starttime' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_record_rwsem_lock_starttime' visibility='default' filepath='include/trace/hooks/dtask.h' line='94' column='1' elf-symbol-id='__tracepoint_android_vh_record_rwsem_lock_starttime'/>
<var-decl name='__tracepoint_android_vh_regmap_update' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_regmap_update' visibility='default' filepath='include/trace/hooks/regmap.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_regmap_update'/>
<var-decl name='__tracepoint_android_vh_rmqueue' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rmqueue' visibility='default' filepath='include/trace/hooks/mm.h' line='150' column='1' elf-symbol-id='__tracepoint_android_vh_rmqueue'/>
<var-decl name='__tracepoint_android_vh_rproc_recovery' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rproc_recovery' visibility='default' filepath='include/trace/hooks/remoteproc.h' line='19' column='1' elf-symbol-id='__tracepoint_android_vh_rproc_recovery'/>
<var-decl name='__tracepoint_android_vh_rproc_recovery_set' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rproc_recovery_set' visibility='default' filepath='include/trace/hooks/remoteproc.h' line='24' column='1' elf-symbol-id='__tracepoint_android_vh_rproc_recovery_set'/>
- <var-decl name='__tracepoint_android_vh_rtmutex_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rtmutex_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='39' column='1' elf-symbol-id='__tracepoint_android_vh_rtmutex_wait_finish'/>
- <var-decl name='__tracepoint_android_vh_rtmutex_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rtmutex_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='36' column='1' elf-symbol-id='__tracepoint_android_vh_rtmutex_wait_start'/>
+ <var-decl name='__tracepoint_android_vh_rtmutex_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rtmutex_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='48' column='1' elf-symbol-id='__tracepoint_android_vh_rtmutex_wait_finish'/>
+ <var-decl name='__tracepoint_android_vh_rtmutex_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rtmutex_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='45' column='1' elf-symbol-id='__tracepoint_android_vh_rtmutex_wait_start'/>
+ <var-decl name='__tracepoint_android_vh_rwsem_can_spin_on_owner' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_can_spin_on_owner' visibility='default' filepath='include/trace/hooks/dtask.h' line='70' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_can_spin_on_owner'/>
<var-decl name='__tracepoint_android_vh_rwsem_init' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_init' visibility='default' filepath='include/trace/hooks/rwsem.h' line='20' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_init'/>
- <var-decl name='__tracepoint_android_vh_rwsem_read_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_read_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='46' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_read_wait_finish'/>
- <var-decl name='__tracepoint_android_vh_rwsem_read_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_read_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='43' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_read_wait_start'/>
+ <var-decl name='__tracepoint_android_vh_rwsem_opt_spin_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_opt_spin_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='67' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_opt_spin_finish'/>
+ <var-decl name='__tracepoint_android_vh_rwsem_opt_spin_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_opt_spin_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='64' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_opt_spin_start'/>
+ <var-decl name='__tracepoint_android_vh_rwsem_read_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_read_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='55' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_read_wait_finish'/>
+ <var-decl name='__tracepoint_android_vh_rwsem_read_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_read_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='52' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_read_wait_start'/>
<var-decl name='__tracepoint_android_vh_rwsem_wake' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_wake' visibility='default' filepath='include/trace/hooks/rwsem.h' line='23' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_wake'/>
<var-decl name='__tracepoint_android_vh_rwsem_wake_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_wake_finish' visibility='default' filepath='include/trace/hooks/rwsem.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_wake_finish'/>
<var-decl name='__tracepoint_android_vh_rwsem_write_finished' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_finished' visibility='default' filepath='include/trace/hooks/rwsem.h' line='26' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_finished'/>
- <var-decl name='__tracepoint_android_vh_rwsem_write_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='52' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_wait_finish'/>
- <var-decl name='__tracepoint_android_vh_rwsem_write_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='49' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_wait_start'/>
+ <var-decl name='__tracepoint_android_vh_rwsem_write_wait_finish' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_wait_finish' visibility='default' filepath='include/trace/hooks/dtask.h' line='61' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_wait_finish'/>
+ <var-decl name='__tracepoint_android_vh_rwsem_write_wait_start' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_rwsem_write_wait_start' visibility='default' filepath='include/trace/hooks/dtask.h' line='58' column='1' elf-symbol-id='__tracepoint_android_vh_rwsem_write_wait_start'/>
<var-decl name='__tracepoint_android_vh_save_cpu_resume' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_save_cpu_resume' visibility='default' filepath='include/trace/hooks/bl_hib.h' line='18' column='1' elf-symbol-id='__tracepoint_android_vh_save_cpu_resume'/>
<var-decl name='__tracepoint_android_vh_save_hib_resume_bdev' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_save_hib_resume_bdev' visibility='default' filepath='include/trace/hooks/bl_hib.h' line='22' column='1' elf-symbol-id='__tracepoint_android_vh_save_hib_resume_bdev'/>
<var-decl name='__tracepoint_android_vh_save_track_hash' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_save_track_hash' visibility='default' filepath='include/trace/hooks/mm.h' line='147' column='1' elf-symbol-id='__tracepoint_android_vh_save_track_hash'/>
<var-decl name='__tracepoint_android_vh_sched_pelt_multiplier' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_pelt_multiplier' visibility='default' filepath='include/trace/hooks/sched.h' line='325' column='1' elf-symbol-id='__tracepoint_android_vh_sched_pelt_multiplier'/>
<var-decl name='__tracepoint_android_vh_sched_setaffinity_early' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_setaffinity_early' visibility='default' filepath='include/trace/hooks/sched.h' line='423' column='1' elf-symbol-id='__tracepoint_android_vh_sched_setaffinity_early'/>
- <var-decl name='__tracepoint_android_vh_sched_show_task' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_show_task' visibility='default' filepath='include/trace/hooks/dtask.h' line='56' column='1' elf-symbol-id='__tracepoint_android_vh_sched_show_task'/>
+ <var-decl name='__tracepoint_android_vh_sched_show_task' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_show_task' visibility='default' filepath='include/trace/hooks/dtask.h' line='74' column='1' elf-symbol-id='__tracepoint_android_vh_sched_show_task'/>
<var-decl name='__tracepoint_android_vh_sched_stat_runtime_rt' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sched_stat_runtime_rt' visibility='default' filepath='include/trace/hooks/sched.h' line='370' column='1' elf-symbol-id='__tracepoint_android_vh_sched_stat_runtime_rt'/>
<var-decl name='__tracepoint_android_vh_scheduler_tick' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_scheduler_tick' visibility='default' filepath='include/trace/hooks/sched.h' line='34' column='1' elf-symbol-id='__tracepoint_android_vh_scheduler_tick'/>
<var-decl name='__tracepoint_android_vh_sd_update_bus_speed_mode' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sd_update_bus_speed_mode' visibility='default' filepath='include/trace/hooks/mmc.h' line='39' column='1' elf-symbol-id='__tracepoint_android_vh_sd_update_bus_speed_mode'/>
@@ -130711,7 +131016,7 @@
<var-decl name='__tracepoint_android_vh_sync_txn_recvd' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sync_txn_recvd' visibility='default' filepath='include/trace/hooks/binder.h' line='43' column='1' elf-symbol-id='__tracepoint_android_vh_sync_txn_recvd'/>
<var-decl name='__tracepoint_android_vh_syscall_prctl_finished' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_syscall_prctl_finished' visibility='default' filepath='include/trace/hooks/sys.h' line='16' column='1' elf-symbol-id='__tracepoint_android_vh_syscall_prctl_finished'/>
<var-decl name='__tracepoint_android_vh_sysrq_crash' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_sysrq_crash' visibility='default' filepath='include/trace/hooks/sysrqcrash.h' line='13' column='1' elf-symbol-id='__tracepoint_android_vh_sysrq_crash'/>
- <var-decl name='__tracepoint_android_vh_thermal_power_cap' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_power_cap' visibility='default' filepath='include/trace/hooks/thermal.h' line='41' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_power_cap'/>
+ <var-decl name='__tracepoint_android_vh_thermal_power_cap' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_power_cap' visibility='default' filepath='include/trace/hooks/thermal.h' line='45' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_power_cap'/>
<var-decl name='__tracepoint_android_vh_thermal_register' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_register' visibility='default' filepath='include/trace/hooks/thermal.h' line='29' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_register'/>
<var-decl name='__tracepoint_android_vh_thermal_unregister' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_thermal_unregister' visibility='default' filepath='include/trace/hooks/thermal.h' line='33' column='1' elf-symbol-id='__tracepoint_android_vh_thermal_unregister'/>
<var-decl name='__tracepoint_android_vh_timer_calc_index' type-id='4ca0c298' mangled-name='__tracepoint_android_vh_timer_calc_index' visibility='default' filepath='include/trace/hooks/timer.h' line='12' column='1' elf-symbol-id='__tracepoint_android_vh_timer_calc_index'/>
@@ -130814,6 +131119,7 @@
<var-decl name='__tracepoint_unmap' type-id='4ca0c298' mangled-name='__tracepoint_unmap' visibility='default' filepath='include/trace/events/iommu.h' line='109' column='1' elf-symbol-id='__tracepoint_unmap'/>
<var-decl name='__tracepoint_usb_gadget_connect' type-id='4ca0c298' mangled-name='__tracepoint_usb_gadget_connect' visibility='default' filepath='drivers/usb/gadget/udc/./trace.h' line='119' column='1' elf-symbol-id='__tracepoint_usb_gadget_connect'/>
<var-decl name='__tracepoint_usb_gadget_disconnect' type-id='4ca0c298' mangled-name='__tracepoint_usb_gadget_disconnect' visibility='default' filepath='drivers/usb/gadget/udc/./trace.h' line='124' column='1' elf-symbol-id='__tracepoint_usb_gadget_disconnect'/>
+ <var-decl name='__tracepoint_wbc_writepage' type-id='4ca0c298' mangled-name='__tracepoint_wbc_writepage' visibility='default' filepath='include/trace/events/writeback.h' line='496' column='1' elf-symbol-id='__tracepoint_wbc_writepage'/>
<var-decl name='__tracepoint_workqueue_execute_end' type-id='4ca0c298' mangled-name='__tracepoint_workqueue_execute_end' visibility='default' filepath='include/trace/events/workqueue.h' line='108' column='1' elf-symbol-id='__tracepoint_workqueue_execute_end'/>
<var-decl name='__tracepoint_workqueue_execute_start' type-id='4ca0c298' mangled-name='__tracepoint_workqueue_execute_start' visibility='default' filepath='include/trace/events/workqueue.h' line='82' column='1' elf-symbol-id='__tracepoint_workqueue_execute_start'/>
<var-decl name='__tracepoint_xdp_exception' type-id='4ca0c298' mangled-name='__tracepoint_xdp_exception' visibility='default' filepath='include/trace/events/xdp.h' line='28' column='1' elf-symbol-id='__tracepoint_xdp_exception'/>
@@ -131006,8 +131312,8 @@
<parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/wait.c' line='201' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='__warn_printk' mangled-name='__warn_printk' filepath='kernel/panic.c' line='638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__warn_printk'>
- <parameter type-id='80f4b756' name='fmt' filepath='kernel/panic.c' line='638' column='1'/>
+ <function-decl name='__warn_printk' mangled-name='__warn_printk' filepath='kernel/panic.c' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__warn_printk'>
+ <parameter type-id='80f4b756' name='fmt' filepath='kernel/panic.c' line='706' column='1'/>
<parameter is-variadic='yes'/>
<return type-id='48b5725f'/>
</function-decl>
@@ -131298,22 +131604,22 @@
<parameter type-id='e0ea832a' name='lock' filepath='drivers/media/common/videobuf2/videobuf2-v4l2.c' line='1118' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='access_process_vm' mangled-name='access_process_vm' filepath='mm/memory.c' line='5607' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='access_process_vm'>
- <parameter type-id='f23e2572' name='tsk' filepath='mm/memory.c' line='5607' column='1'/>
- <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='5607' column='1'/>
- <parameter type-id='eaa32e2f' name='buf' filepath='mm/memory.c' line='5608' column='1'/>
- <parameter type-id='95e97e5e' name='len' filepath='mm/memory.c' line='5608' column='1'/>
- <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/memory.c' line='5608' column='1'/>
+ <function-decl name='access_process_vm' mangled-name='access_process_vm' filepath='mm/memory.c' line='5620' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='access_process_vm'>
+ <parameter type-id='f23e2572' name='tsk' filepath='mm/memory.c' line='5620' column='1'/>
+ <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='5620' column='1'/>
+ <parameter type-id='eaa32e2f' name='buf' filepath='mm/memory.c' line='5621' column='1'/>
+ <parameter type-id='95e97e5e' name='len' filepath='mm/memory.c' line='5621' column='1'/>
+ <parameter type-id='f0981eeb' name='gup_flags' filepath='mm/memory.c' line='5621' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='ack_all_badblocks' mangled-name='ack_all_badblocks' filepath='block/badblocks.c' line='433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ack_all_badblocks'>
<parameter type-id='5760652c' name='bb' filepath='block/badblocks.c' line='433' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='activate_task' mangled-name='activate_task' filepath='kernel/sched/core.c' line='2046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='activate_task'>
- <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2046' column='1'/>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2046' column='1'/>
- <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2046' column='1'/>
+ <function-decl name='activate_task' mangled-name='activate_task' filepath='kernel/sched/core.c' line='2043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='activate_task'>
+ <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2043' column='1'/>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2043' column='1'/>
+ <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2043' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='add_cpu' mangled-name='add_cpu' filepath='kernel/cpu.c' line='1498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_cpu'>
@@ -131342,11 +131648,11 @@
<parameter type-id='b47c553a' name='rdy' filepath='drivers/char/random.c' line='1552' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='add_swap_extent' mangled-name='add_swap_extent' filepath='mm/swapfile.c' line='2316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_swap_extent'>
- <parameter type-id='11e11a61' name='sis' filepath='mm/swapfile.c' line='2316' column='1'/>
- <parameter type-id='7359adad' name='start_page' filepath='mm/swapfile.c' line='2316' column='1'/>
- <parameter type-id='7359adad' name='nr_pages' filepath='mm/swapfile.c' line='2317' column='1'/>
- <parameter type-id='a42536cd' name='start_block' filepath='mm/swapfile.c' line='2317' column='1'/>
+ <function-decl name='add_swap_extent' mangled-name='add_swap_extent' filepath='mm/swapfile.c' line='2317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_swap_extent'>
+ <parameter type-id='11e11a61' name='sis' filepath='mm/swapfile.c' line='2317' column='1'/>
+ <parameter type-id='7359adad' name='start_page' filepath='mm/swapfile.c' line='2317' column='1'/>
+ <parameter type-id='7359adad' name='nr_pages' filepath='mm/swapfile.c' line='2318' column='1'/>
+ <parameter type-id='a42536cd' name='start_block' filepath='mm/swapfile.c' line='2318' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='add_timer' mangled-name='add_timer' filepath='kernel/time/timer.c' line='1147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='add_timer'>
@@ -131401,9 +131707,9 @@
<parameter type-id='f57039f0' name='mapping' filepath='fs/inode.c' line='381' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='adjust_managed_page_count' mangled-name='adjust_managed_page_count' filepath='mm/page_alloc.c' line='8300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='adjust_managed_page_count'>
- <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='8300' column='1'/>
- <parameter type-id='bd54fe1a' name='count' filepath='mm/page_alloc.c' line='8300' column='1'/>
+ <function-decl name='adjust_managed_page_count' mangled-name='adjust_managed_page_count' filepath='mm/page_alloc.c' line='8303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='adjust_managed_page_count'>
+ <parameter type-id='02f11ed4' name='page' filepath='mm/page_alloc.c' line='8303' column='1'/>
+ <parameter type-id='bd54fe1a' name='count' filepath='mm/page_alloc.c' line='8303' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='aead_register_instance' mangled-name='aead_register_instance' filepath='crypto/aead.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='aead_register_instance'>
@@ -131509,11 +131815,11 @@
<parameter type-id='80f4b756' name='name' filepath='fs/char_dev.c' line='237' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='alloc_contig_range' mangled-name='alloc_contig_range' filepath='mm/page_alloc.c' line='9246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_contig_range'>
- <parameter type-id='7359adad' name='start' filepath='mm/page_alloc.c' line='9246' column='1'/>
- <parameter type-id='7359adad' name='end' filepath='mm/page_alloc.c' line='9246' column='1'/>
- <parameter type-id='f0981eeb' name='migratetype' filepath='mm/page_alloc.c' line='9247' column='1'/>
- <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='9247' column='1'/>
+ <function-decl name='alloc_contig_range' mangled-name='alloc_contig_range' filepath='mm/page_alloc.c' line='9249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_contig_range'>
+ <parameter type-id='7359adad' name='start' filepath='mm/page_alloc.c' line='9249' column='1'/>
+ <parameter type-id='7359adad' name='end' filepath='mm/page_alloc.c' line='9249' column='1'/>
+ <parameter type-id='f0981eeb' name='migratetype' filepath='mm/page_alloc.c' line='9250' column='1'/>
+ <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='9250' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='alloc_etherdev_mqs' mangled-name='alloc_etherdev_mqs' filepath='net/ethernet/eth.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_etherdev_mqs'>
@@ -131528,6 +131834,13 @@
<parameter type-id='eaa32e2f' name='cookie' filepath='drivers/iommu/io-pgtable.c' line='35' column='1'/>
<return type-id='bf4bdb64'/>
</function-decl>
+ <function-decl name='alloc_iova' mangled-name='alloc_iova' filepath='drivers/iommu/iova.c' line='461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_iova'>
+ <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='461' column='1'/>
+ <parameter type-id='7359adad' name='size' filepath='drivers/iommu/iova.c' line='461' column='1'/>
+ <parameter type-id='7359adad' name='limit_pfn' filepath='drivers/iommu/iova.c' line='462' column='1'/>
+ <parameter type-id='b50a4934' name='size_aligned' filepath='drivers/iommu/iova.c' line='463' column='1'/>
+ <return type-id='b2ea0a72'/>
+ </function-decl>
<function-decl name='alloc_netdev_mqs' mangled-name='alloc_netdev_mqs' filepath='net/core/dev.c' line='10798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_netdev_mqs'>
<parameter type-id='95e97e5e' name='sizeof_priv' filepath='net/core/dev.c' line='10798' column='1'/>
<parameter type-id='80f4b756' name='name' filepath='net/core/dev.c' line='10798' column='1'/>
@@ -131543,17 +131856,17 @@
<parameter type-id='b50a4934' name='retry' filepath='fs/buffer.c' line='815' column='1'/>
<return type-id='c485c22c'/>
</function-decl>
- <function-decl name='alloc_pages_exact' mangled-name='alloc_pages_exact' filepath='mm/page_alloc.c' line='5816' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_pages_exact'>
- <parameter type-id='b59d7dce' name='size' filepath='mm/page_alloc.c' line='5816' column='1'/>
- <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='5816' column='1'/>
+ <function-decl name='alloc_pages_exact' mangled-name='alloc_pages_exact' filepath='mm/page_alloc.c' line='5819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_pages_exact'>
+ <parameter type-id='b59d7dce' name='size' filepath='mm/page_alloc.c' line='5819' column='1'/>
+ <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='5819' column='1'/>
<return type-id='eaa32e2f'/>
</function-decl>
- <function-decl name='alloc_skb_with_frags' mangled-name='alloc_skb_with_frags' filepath='net/core/skbuff.c' line='6121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_skb_with_frags'>
- <parameter type-id='7359adad' name='header_len' filepath='net/core/skbuff.c' line='6121' column='1'/>
- <parameter type-id='7359adad' name='data_len' filepath='net/core/skbuff.c' line='6122' column='1'/>
- <parameter type-id='95e97e5e' name='max_page_order' filepath='net/core/skbuff.c' line='6123' column='1'/>
- <parameter type-id='7292109c' name='errcode' filepath='net/core/skbuff.c' line='6124' column='1'/>
- <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='6125' column='1'/>
+ <function-decl name='alloc_skb_with_frags' mangled-name='alloc_skb_with_frags' filepath='net/core/skbuff.c' line='6120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_skb_with_frags'>
+ <parameter type-id='7359adad' name='header_len' filepath='net/core/skbuff.c' line='6120' column='1'/>
+ <parameter type-id='7359adad' name='data_len' filepath='net/core/skbuff.c' line='6121' column='1'/>
+ <parameter type-id='95e97e5e' name='max_page_order' filepath='net/core/skbuff.c' line='6122' column='1'/>
+ <parameter type-id='7292109c' name='errcode' filepath='net/core/skbuff.c' line='6123' column='1'/>
+ <parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='6124' column='1'/>
<return type-id='0fbf3cfd'/>
</function-decl>
<function-decl name='alloc_swapdev_block' mangled-name='alloc_swapdev_block' filepath='kernel/power/swap.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_swapdev_block'>
@@ -131585,9 +131898,9 @@
<parameter type-id='80f4b756' name='name' filepath='drivers/amba/bus.c' line='797' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='android_debug_for_each_module' mangled-name='android_debug_for_each_module' filepath='kernel/module.c' line='4836' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='android_debug_for_each_module'>
- <parameter type-id='841286fc' name='fn' filepath='kernel/module.c' line='4836' column='1'/>
- <parameter type-id='eaa32e2f' name='data' filepath='kernel/module.c' line='4837' column='1'/>
+ <function-decl name='android_debug_for_each_module' mangled-name='android_debug_for_each_module' filepath='kernel/module.c' line='4852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='android_debug_for_each_module'>
+ <parameter type-id='841286fc' name='fn' filepath='kernel/module.c' line='4852' column='1'/>
+ <parameter type-id='eaa32e2f' name='data' filepath='kernel/module.c' line='4853' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='android_debug_per_cpu_symbol' mangled-name='android_debug_per_cpu_symbol' filepath='drivers/android/android_debug_symbols.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='android_debug_per_cpu_symbol'>
@@ -131697,8 +132010,8 @@
<parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/wait.c' line='419' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='available_idle_cpu' mangled-name='available_idle_cpu' filepath='kernel/sched/core.c' line='7272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='available_idle_cpu'>
- <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='7272' column='1'/>
+ <function-decl name='available_idle_cpu' mangled-name='available_idle_cpu' filepath='kernel/sched/core.c' line='7239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='available_idle_cpu'>
+ <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='7239' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='backlight_device_get_by_type' mangled-name='backlight_device_get_by_type' filepath='drivers/video/backlight/backlight.c' line='468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='backlight_device_get_by_type'>
@@ -131761,7 +132074,7 @@
<parameter type-id='f57039f0' name='mapping' filepath='mm/page-writeback.c' line='1878' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <var-decl name='balance_push_callback' type-id='e3d8ce29' mangled-name='balance_push_callback' visibility='default' filepath='kernel/sched/core.c' line='4832' column='1' elf-symbol-id='balance_push_callback'/>
+ <var-decl name='balance_push_callback' type-id='e3d8ce29' mangled-name='balance_push_callback' visibility='default' filepath='kernel/sched/core.c' line='4800' column='1' elf-symbol-id='balance_push_callback'/>
<var-decl name='balloon_aops' type-id='38ce7f2c' mangled-name='balloon_aops' visibility='default' filepath='mm/balloon_compaction.c' line='253' column='1' elf-symbol-id='balloon_aops'/>
<function-decl name='balloon_page_alloc' mangled-name='balloon_page_alloc' filepath='mm/balloon_compaction.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='balloon_page_alloc'>
<return type-id='02f11ed4'/>
@@ -131813,6 +132126,10 @@
<parameter type-id='95e97e5e' name='node_id' filepath='mm/backing-dev.c' line='799' column='1'/>
<return type-id='ef4fae1b'/>
</function-decl>
+ <function-decl name='bdi_dev_name' mangled-name='bdi_dev_name' filepath='mm/backing-dev.c' line='980' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bdi_dev_name'>
+ <parameter type-id='ef4fae1b' name='bdi' filepath='mm/backing-dev.c' line='980' column='1'/>
+ <return type-id='80f4b756'/>
+ </function-decl>
<function-decl name='bdi_put' mangled-name='bdi_put' filepath='mm/backing-dev.c' line='974' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bdi_put'>
<parameter type-id='ef4fae1b' name='bdi' filepath='mm/backing-dev.c' line='974' column='1'/>
<return type-id='48b5725f'/>
@@ -131854,13 +132171,13 @@
<parameter type-id='38b1e3a0' name='bs' filepath='block/bio.c' line='435' column='1'/>
<return type-id='fb55efa1'/>
</function-decl>
- <function-decl name='bio_associate_blkg' mangled-name='bio_associate_blkg' filepath='block/blk-cgroup.c' line='1865' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_associate_blkg'>
- <parameter type-id='fb55efa1' name='bio' filepath='block/blk-cgroup.c' line='1865' column='1'/>
+ <function-decl name='bio_associate_blkg' mangled-name='bio_associate_blkg' filepath='block/blk-cgroup.c' line='1869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_associate_blkg'>
+ <parameter type-id='fb55efa1' name='bio' filepath='block/blk-cgroup.c' line='1869' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='bio_associate_blkg_from_css' mangled-name='bio_associate_blkg_from_css' filepath='block/blk-cgroup.c' line='1841' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_associate_blkg_from_css'>
- <parameter type-id='fb55efa1' name='bio' filepath='block/blk-cgroup.c' line='1841' column='1'/>
- <parameter type-id='cfff5953' name='css' filepath='block/blk-cgroup.c' line='1842' column='1'/>
+ <function-decl name='bio_associate_blkg_from_css' mangled-name='bio_associate_blkg_from_css' filepath='block/blk-cgroup.c' line='1845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_associate_blkg_from_css'>
+ <parameter type-id='fb55efa1' name='bio' filepath='block/blk-cgroup.c' line='1845' column='1'/>
+ <parameter type-id='cfff5953' name='css' filepath='block/blk-cgroup.c' line='1846' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='bio_chain' mangled-name='bio_chain' filepath='block/bio.c' line='338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_chain'>
@@ -131868,9 +132185,9 @@
<parameter type-id='fb55efa1' name='parent' filepath='block/bio.c' line='338' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='bio_clone_blkg_association' mangled-name='bio_clone_blkg_association' filepath='block/blk-cgroup.c' line='1887' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_clone_blkg_association'>
- <parameter type-id='fb55efa1' name='dst' filepath='block/blk-cgroup.c' line='1887' column='1'/>
- <parameter type-id='fb55efa1' name='src' filepath='block/blk-cgroup.c' line='1887' column='1'/>
+ <function-decl name='bio_clone_blkg_association' mangled-name='bio_clone_blkg_association' filepath='block/blk-cgroup.c' line='1891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_clone_blkg_association'>
+ <parameter type-id='fb55efa1' name='dst' filepath='block/blk-cgroup.c' line='1891' column='1'/>
+ <parameter type-id='fb55efa1' name='src' filepath='block/blk-cgroup.c' line='1891' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='bio_clone_fast' mangled-name='bio_clone_fast' filepath='block/bio.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_clone_fast'>
@@ -131886,10 +132203,10 @@
<parameter type-id='3eb7c31c' name='gfp_mask' filepath='block/blk-crypto.c' line='82' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='bio_end_io_acct_remapped' mangled-name='bio_end_io_acct_remapped' filepath='block/blk-core.c' line='1358' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_end_io_acct_remapped'>
- <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1358' column='1'/>
- <parameter type-id='7359adad' name='start_time' filepath='block/blk-core.c' line='1358' column='1'/>
- <parameter type-id='b88dd945' name='orig_bdev' filepath='block/blk-core.c' line='1359' column='1'/>
+ <function-decl name='bio_end_io_acct_remapped' mangled-name='bio_end_io_acct_remapped' filepath='block/blk-core.c' line='1354' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_end_io_acct_remapped'>
+ <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1354' column='1'/>
+ <parameter type-id='7359adad' name='start_time' filepath='block/blk-core.c' line='1354' column='1'/>
+ <parameter type-id='b88dd945' name='orig_bdev' filepath='block/blk-core.c' line='1355' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='bio_endio' mangled-name='bio_endio' filepath='block/bio.c' line='1447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_endio'>
@@ -131913,8 +132230,8 @@
<parameter type-id='38b1e3a0' name='bs' filepath='block/bio.c' line='1498' column='1'/>
<return type-id='fb55efa1'/>
</function-decl>
- <function-decl name='bio_start_io_acct' mangled-name='bio_start_io_acct' filepath='block/blk-core.c' line='1330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_start_io_acct'>
- <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1330' column='1'/>
+ <function-decl name='bio_start_io_acct' mangled-name='bio_start_io_acct' filepath='block/blk-core.c' line='1326' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bio_start_io_acct'>
+ <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1326' column='1'/>
<return type-id='7359adad'/>
</function-decl>
<function-decl name='bioset_exit' mangled-name='bioset_exit' filepath='block/bio.c' line='1571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bioset_exit'>
@@ -132016,11 +132333,11 @@
<parameter type-id='3eb7c31c' name='flags' filepath='lib/bitmap.c' line='1395' column='1'/>
<return type-id='1d2c2b85'/>
</function-decl>
- <function-decl name='blk_bio_list_merge' mangled-name='blk_bio_list_merge' filepath='block/blk-merge.c' line='1092' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_bio_list_merge'>
- <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='1092' column='1'/>
- <parameter type-id='e84b031a' name='list' filepath='block/blk-merge.c' line='1092' column='1'/>
- <parameter type-id='fb55efa1' name='bio' filepath='block/blk-merge.c' line='1093' column='1'/>
- <parameter type-id='f0981eeb' name='nr_segs' filepath='block/blk-merge.c' line='1093' column='1'/>
+ <function-decl name='blk_bio_list_merge' mangled-name='blk_bio_list_merge' filepath='block/blk-merge.c' line='1104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_bio_list_merge'>
+ <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='1104' column='1'/>
+ <parameter type-id='e84b031a' name='list' filepath='block/blk-merge.c' line='1104' column='1'/>
+ <parameter type-id='fb55efa1' name='bio' filepath='block/blk-merge.c' line='1105' column='1'/>
+ <parameter type-id='f0981eeb' name='nr_segs' filepath='block/blk-merge.c' line='1105' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
<function-decl name='blk_cleanup_disk' mangled-name='blk_cleanup_disk' filepath='block/genhd.c' line='1377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_cleanup_disk'>
@@ -132044,8 +132361,8 @@
<parameter type-id='5afdaa66' name='done' filepath='block/blk-exec.c' line='48' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='blk_finish_plug' mangled-name='blk_finish_plug' filepath='block/blk-core.c' line='1753' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_finish_plug'>
- <parameter type-id='39944481' name='plug' filepath='block/blk-core.c' line='1753' column='1'/>
+ <function-decl name='blk_finish_plug' mangled-name='blk_finish_plug' filepath='block/blk-core.c' line='1749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_finish_plug'>
+ <parameter type-id='39944481' name='plug' filepath='block/blk-core.c' line='1749' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='blk_freeze_queue_start' mangled-name='blk_freeze_queue_start' filepath='block/blk-mq.c' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_freeze_queue_start'>
@@ -132101,15 +132418,15 @@
<parameter type-id='f0981eeb' name='hctx_idx' filepath='block/blk-mq.c' line='441' column='1'/>
<return type-id='3dad1a48'/>
</function-decl>
- <function-decl name='blk_mq_alloc_sq_tag_set' mangled-name='blk_mq_alloc_sq_tag_set' filepath='block/blk-mq.c' line='3575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_sq_tag_set'>
- <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3575' column='1'/>
- <parameter type-id='e1962c5d' name='ops' filepath='block/blk-mq.c' line='3576' column='1'/>
- <parameter type-id='f0981eeb' name='queue_depth' filepath='block/blk-mq.c' line='3576' column='1'/>
- <parameter type-id='f0981eeb' name='set_flags' filepath='block/blk-mq.c' line='3577' column='1'/>
+ <function-decl name='blk_mq_alloc_sq_tag_set' mangled-name='blk_mq_alloc_sq_tag_set' filepath='block/blk-mq.c' line='3577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_sq_tag_set'>
+ <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3577' column='1'/>
+ <parameter type-id='e1962c5d' name='ops' filepath='block/blk-mq.c' line='3578' column='1'/>
+ <parameter type-id='f0981eeb' name='queue_depth' filepath='block/blk-mq.c' line='3578' column='1'/>
+ <parameter type-id='f0981eeb' name='set_flags' filepath='block/blk-mq.c' line='3579' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='blk_mq_alloc_tag_set' mangled-name='blk_mq_alloc_tag_set' filepath='block/blk-mq.c' line='3478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_tag_set'>
- <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3478' column='1'/>
+ <function-decl name='blk_mq_alloc_tag_set' mangled-name='blk_mq_alloc_tag_set' filepath='block/blk-mq.c' line='3480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_alloc_tag_set'>
+ <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3480' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='blk_mq_complete_request' mangled-name='blk_mq_complete_request' filepath='block/blk-mq.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_complete_request'>
@@ -132139,8 +132456,8 @@
<parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='519' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='blk_mq_free_tag_set' mangled-name='blk_mq_free_tag_set' filepath='block/blk-mq.c' line='3590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_free_tag_set'>
- <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3590' column='1'/>
+ <function-decl name='blk_mq_free_tag_set' mangled-name='blk_mq_free_tag_set' filepath='block/blk-mq.c' line='3592' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_free_tag_set'>
+ <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3592' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='blk_mq_freeze_queue' mangled-name='blk_mq_freeze_queue' filepath='block/blk-mq.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_freeze_queue'>
@@ -132156,8 +132473,8 @@
<parameter type-id='7359adad' name='timeout' filepath='block/blk-mq.c' line='158' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='blk_mq_init_queue' mangled-name='blk_mq_init_queue' filepath='block/blk-mq.c' line='3141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_init_queue'>
- <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3141' column='1'/>
+ <function-decl name='blk_mq_init_queue' mangled-name='blk_mq_init_queue' filepath='block/blk-mq.c' line='3143' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_init_queue'>
+ <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3143' column='1'/>
<return type-id='e7d2a5fc'/>
</function-decl>
<function-decl name='blk_mq_map_queues' mangled-name='blk_mq_map_queues' filepath='block/blk-mq-cpumap.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_map_queues'>
@@ -132183,8 +132500,8 @@
<parameter type-id='b50a4934' name='kick_requeue_list' filepath='block/blk-mq.c' line='764' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='blk_mq_rq_cpu' mangled-name='blk_mq_rq_cpu' filepath='block/blk-mq.c' line='4021' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_rq_cpu'>
- <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='4021' column='1'/>
+ <function-decl name='blk_mq_rq_cpu' mangled-name='blk_mq_rq_cpu' filepath='block/blk-mq.c' line='4023' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_rq_cpu'>
+ <parameter type-id='3dad1a48' name='rq' filepath='block/blk-mq.c' line='4023' column='1'/>
<return type-id='f0981eeb'/>
</function-decl>
<function-decl name='blk_mq_run_hw_queue' mangled-name='blk_mq_run_hw_queue' filepath='block/blk-mq.c' line='1608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_run_hw_queue'>
@@ -132203,11 +132520,11 @@
<parameter type-id='e84b031a' name='free' filepath='block/blk-mq-sched.c' line='410' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='blk_mq_sched_try_merge' mangled-name='blk_mq_sched_try_merge' filepath='block/blk-merge.c' line='1117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_sched_try_merge'>
- <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='1117' column='1'/>
- <parameter type-id='fb55efa1' name='bio' filepath='block/blk-merge.c' line='1117' column='1'/>
- <parameter type-id='f0981eeb' name='nr_segs' filepath='block/blk-merge.c' line='1118' column='1'/>
- <parameter type-id='79808846' name='merged_request' filepath='block/blk-merge.c' line='1118' column='1'/>
+ <function-decl name='blk_mq_sched_try_merge' mangled-name='blk_mq_sched_try_merge' filepath='block/blk-merge.c' line='1129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_sched_try_merge'>
+ <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-merge.c' line='1129' column='1'/>
+ <parameter type-id='fb55efa1' name='bio' filepath='block/blk-merge.c' line='1129' column='1'/>
+ <parameter type-id='f0981eeb' name='nr_segs' filepath='block/blk-merge.c' line='1130' column='1'/>
+ <parameter type-id='79808846' name='merged_request' filepath='block/blk-merge.c' line='1130' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
<function-decl name='blk_mq_start_request' mangled-name='blk_mq_start_request' filepath='block/blk-mq.c' line='724' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_start_request'>
@@ -132246,9 +132563,9 @@
<parameter type-id='e7d2a5fc' name='q' filepath='block/blk-mq.c' line='258' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='blk_mq_update_nr_hw_queues' mangled-name='blk_mq_update_nr_hw_queues' filepath='block/blk-mq.c' line='3802' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_update_nr_hw_queues'>
- <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3802' column='1'/>
- <parameter type-id='95e97e5e' name='nr_hw_queues' filepath='block/blk-mq.c' line='3802' column='1'/>
+ <function-decl name='blk_mq_update_nr_hw_queues' mangled-name='blk_mq_update_nr_hw_queues' filepath='block/blk-mq.c' line='3804' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_update_nr_hw_queues'>
+ <parameter type-id='cc26d15f' name='set' filepath='block/blk-mq.c' line='3804' column='1'/>
+ <parameter type-id='95e97e5e' name='nr_hw_queues' filepath='block/blk-mq.c' line='3804' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='blk_mq_virtio_map_queues' mangled-name='blk_mq_virtio_map_queues' filepath='block/blk-mq-virtio.c' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_mq_virtio_map_queues'>
@@ -132369,8 +132686,8 @@
<parameter type-id='f0981eeb' name='timeout' filepath='block/blk-settings.c' line='21' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='blk_queue_split' mangled-name='blk_queue_split' filepath='block/blk-merge.c' line='367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_split'>
- <parameter type-id='334817d1' name='bio' filepath='block/blk-merge.c' line='367' column='1'/>
+ <function-decl name='blk_queue_split' mangled-name='blk_queue_split' filepath='block/blk-merge.c' line='379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_split'>
+ <parameter type-id='334817d1' name='bio' filepath='block/blk-merge.c' line='379' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='blk_queue_update_dma_alignment' mangled-name='blk_queue_update_dma_alignment' filepath='block/blk-settings.c' line='762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_queue_update_dma_alignment'>
@@ -132427,8 +132744,8 @@
<parameter type-id='7604ff1d' name='lim' filepath='block/blk-settings.c' line='71' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='blk_start_plug' mangled-name='blk_start_plug' filepath='block/blk-core.c' line='1669' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_start_plug'>
- <parameter type-id='39944481' name='plug' filepath='block/blk-core.c' line='1669' column='1'/>
+ <function-decl name='blk_start_plug' mangled-name='blk_start_plug' filepath='block/blk-core.c' line='1665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_start_plug'>
+ <parameter type-id='39944481' name='plug' filepath='block/blk-core.c' line='1665' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='blk_stat_enable_accounting' mangled-name='blk_stat_enable_accounting' filepath='block/blk-stat.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_stat_enable_accounting'>
@@ -132443,10 +132760,10 @@
<parameter type-id='e7d2a5fc' name='q' filepath='block/blk-core.c' line='299' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='blk_update_request' mangled-name='blk_update_request' filepath='block/blk-core.c' line='1415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_update_request'>
- <parameter type-id='3dad1a48' name='req' filepath='block/blk-core.c' line='1415' column='1'/>
- <parameter type-id='f4e2facd' name='error' filepath='block/blk-core.c' line='1415' column='1'/>
- <parameter type-id='f0981eeb' name='nr_bytes' filepath='block/blk-core.c' line='1416' column='1'/>
+ <function-decl name='blk_update_request' mangled-name='blk_update_request' filepath='block/blk-core.c' line='1411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blk_update_request'>
+ <parameter type-id='3dad1a48' name='req' filepath='block/blk-core.c' line='1411' column='1'/>
+ <parameter type-id='f4e2facd' name='error' filepath='block/blk-core.c' line='1411' column='1'/>
+ <parameter type-id='f0981eeb' name='nr_bytes' filepath='block/blk-core.c' line='1412' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
<function-decl name='blkcg_activate_policy' mangled-name='blkcg_activate_policy' filepath='block/blk-cgroup.c' line='1300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_activate_policy'>
@@ -132454,17 +132771,26 @@
<parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='1301' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='blkcg_deactivate_policy' mangled-name='blkcg_deactivate_policy' filepath='block/blk-cgroup.c' line='1403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_deactivate_policy'>
- <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-cgroup.c' line='1403' column='1'/>
- <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='1404' column='1'/>
+ <function-decl name='blkcg_deactivate_policy' mangled-name='blkcg_deactivate_policy' filepath='block/blk-cgroup.c' line='1407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_deactivate_policy'>
+ <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-cgroup.c' line='1407' column='1'/>
+ <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='1408' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='blkcg_policy_register' mangled-name='blkcg_policy_register' filepath='block/blk-cgroup.c' line='1445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_policy_register'>
- <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup.c' line='1445' column='1'/>
+ <function-decl name='blkcg_policy_register' mangled-name='blkcg_policy_register' filepath='block/blk-cgroup.c' line='1449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_policy_register'>
+ <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup.c' line='1449' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='blkcg_policy_unregister' mangled-name='blkcg_policy_unregister' filepath='block/blk-cgroup.c' line='1524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_policy_unregister'>
- <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup.c' line='1524' column='1'/>
+ <function-decl name='blkcg_policy_unregister' mangled-name='blkcg_policy_unregister' filepath='block/blk-cgroup.c' line='1528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_policy_unregister'>
+ <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup.c' line='1528' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='blkcg_print_blkgs' mangled-name='blkcg_print_blkgs' filepath='block/blk-cgroup.c' line='515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkcg_print_blkgs'>
+ <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup.c' line='515' column='1'/>
+ <parameter type-id='11bff950' name='blkcg' filepath='block/blk-cgroup.c' line='515' column='1'/>
+ <parameter type-id='c2d8e88b' name='prfill' filepath='block/blk-cgroup.c' line='516' column='1'/>
+ <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='518' column='1'/>
+ <parameter type-id='95e97e5e' name='data' filepath='block/blk-cgroup.c' line='518' column='1'/>
+ <parameter type-id='b50a4934' name='show_total' filepath='block/blk-cgroup.c' line='519' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<var-decl name='blkcg_root' type-id='19b26952' mangled-name='blkcg_root' visibility='default' filepath='block/blk-cgroup.c' line='46' column='1' elf-symbol-id='blkcg_root'/>
@@ -132512,12 +132838,45 @@
<parameter type-id='2665334e' name='mode' filepath='block/bdev.c' line='898' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='blkg_conf_finish' mangled-name='blkg_conf_finish' filepath='block/blk-cgroup.c' line='749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_conf_finish'>
+ <parameter type-id='c6db53f8' name='ctx' filepath='block/blk-cgroup.c' line='749' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='blkg_conf_prep' mangled-name='blkg_conf_prep' filepath='block/blk-cgroup.c' line='621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_conf_prep'>
+ <parameter type-id='11bff950' name='blkcg' filepath='block/blk-cgroup.c' line='621' column='1'/>
+ <parameter type-id='0d87d4f6' name='pol' filepath='block/blk-cgroup.c' line='621' column='1'/>
+ <parameter type-id='26a90f95' name='input' filepath='block/blk-cgroup.c' line='622' column='1'/>
+ <parameter type-id='c6db53f8' name='ctx' filepath='block/blk-cgroup.c' line='622' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='blkg_lookup_slowpath' mangled-name='blkg_lookup_slowpath' filepath='block/blk-cgroup.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_lookup_slowpath'>
<parameter type-id='11bff950' name='blkcg' filepath='block/blk-cgroup.c' line='204' column='1'/>
<parameter type-id='e7d2a5fc' name='q' filepath='block/blk-cgroup.c' line='205' column='1'/>
<parameter type-id='b50a4934' name='update_hint' filepath='block/blk-cgroup.c' line='205' column='1'/>
<return type-id='1146dea3'/>
</function-decl>
+ <function-decl name='blkg_prfill_rwstat' mangled-name='blkg_prfill_rwstat' filepath='block/blk-cgroup-rwstat.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_prfill_rwstat'>
+ <parameter type-id='f8dc9def' name='sf' filepath='block/blk-cgroup-rwstat.c' line='79' column='1'/>
+ <parameter type-id='3213e875' name='pd' filepath='block/blk-cgroup-rwstat.c' line='79' column='1'/>
+ <parameter type-id='95e97e5e' name='off' filepath='block/blk-cgroup-rwstat.c' line='80' column='1'/>
+ <return type-id='91ce1af9'/>
+ </function-decl>
+ <function-decl name='blkg_rwstat_exit' mangled-name='blkg_rwstat_exit' filepath='block/blk-cgroup-rwstat.c' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_rwstat_exit'>
+ <parameter type-id='cbc1e303' name='rwstat' filepath='block/blk-cgroup-rwstat.c' line='25' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='blkg_rwstat_init' mangled-name='blkg_rwstat_init' filepath='block/blk-cgroup-rwstat.c' line='8' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_rwstat_init'>
+ <parameter type-id='cbc1e303' name='rwstat' filepath='block/blk-cgroup-rwstat.c' line='8' column='1'/>
+ <parameter type-id='3eb7c31c' name='gfp' filepath='block/blk-cgroup-rwstat.c' line='8' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='blkg_rwstat_recursive_sum' mangled-name='blkg_rwstat_recursive_sum' filepath='block/blk-cgroup-rwstat.c' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='blkg_rwstat_recursive_sum'>
+ <parameter type-id='1146dea3' name='blkg' filepath='block/blk-cgroup-rwstat.c' line='103' column='1'/>
+ <parameter type-id='b31a5ea1' name='pol' filepath='block/blk-cgroup-rwstat.c' line='103' column='1'/>
+ <parameter type-id='95e97e5e' name='off' filepath='block/blk-cgroup-rwstat.c' line='104' column='1'/>
+ <parameter type-id='7806f534' name='sum' filepath='block/blk-cgroup-rwstat.c' line='104' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='block_invalidatepage' mangled-name='block_invalidatepage' filepath='fs/buffer.c' line='1502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='block_invalidatepage'>
<parameter type-id='02f11ed4' name='page' filepath='fs/buffer.c' line='1502' column='1'/>
<parameter type-id='f0981eeb' name='offset' filepath='fs/buffer.c' line='1502' column='1'/>
@@ -132583,16 +132942,16 @@
<parameter type-id='5c39fc92' name='block' filepath='fs/inode.c' line='1709' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='bpf_dispatcher_xdp_func' mangled-name='bpf_dispatcher_xdp_func' filepath='net/core/filter.c' line='10683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_dispatcher_xdp_func'>
- <parameter type-id='eaa32e2f' name='ctx' filepath='net/core/filter.c' line='10683' column='1'/>
- <parameter type-id='acada613' name='insnsi' filepath='net/core/filter.c' line='10683' column='1'/>
- <parameter type-id='531a7450' name='bpf_func' filepath='net/core/filter.c' line='10683' column='1'/>
+ <function-decl name='bpf_dispatcher_xdp_func' mangled-name='bpf_dispatcher_xdp_func' filepath='net/core/filter.c' line='10686' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_dispatcher_xdp_func'>
+ <parameter type-id='eaa32e2f' name='ctx' filepath='net/core/filter.c' line='10686' column='1'/>
+ <parameter type-id='acada613' name='insnsi' filepath='net/core/filter.c' line='10686' column='1'/>
+ <parameter type-id='531a7450' name='bpf_func' filepath='net/core/filter.c' line='10686' column='1'/>
<return type-id='f0981eeb'/>
</function-decl>
- <var-decl name='bpf_master_redirect_enabled_key' type-id='237c0d27' mangled-name='bpf_master_redirect_enabled_key' visibility='default' filepath='net/core/filter.c' line='3949' column='1' elf-symbol-id='bpf_master_redirect_enabled_key'/>
- <function-decl name='bpf_prog_add' mangled-name='bpf_prog_add' filepath='kernel/bpf/syscall.c' line='1924' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_add'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1924' column='1'/>
- <parameter type-id='95e97e5e' name='i' filepath='kernel/bpf/syscall.c' line='1924' column='1'/>
+ <var-decl name='bpf_master_redirect_enabled_key' type-id='237c0d27' mangled-name='bpf_master_redirect_enabled_key' visibility='default' filepath='net/core/filter.c' line='3952' column='1' elf-symbol-id='bpf_master_redirect_enabled_key'/>
+ <function-decl name='bpf_prog_add' mangled-name='bpf_prog_add' filepath='kernel/bpf/syscall.c' line='1922' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_add'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1922' column='1'/>
+ <parameter type-id='95e97e5e' name='i' filepath='kernel/bpf/syscall.c' line='1922' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='bpf_prog_create' mangled-name='bpf_prog_create' filepath='net/core/filter.c' line='1359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_create'>
@@ -132604,22 +132963,97 @@
<parameter type-id='bdcee7ae' name='fp' filepath='net/core/filter.c' line='1447' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='bpf_prog_put' mangled-name='bpf_prog_put' filepath='kernel/bpf/syscall.c' line='1815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_put'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1815' column='1'/>
+ <function-decl name='bpf_prog_put' mangled-name='bpf_prog_put' filepath='kernel/bpf/syscall.c' line='1813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_put'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1813' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='bpf_prog_sub' mangled-name='bpf_prog_sub' filepath='kernel/bpf/syscall.c' line='1930' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_sub'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1930' column='1'/>
- <parameter type-id='95e97e5e' name='i' filepath='kernel/bpf/syscall.c' line='1930' column='1'/>
+ <function-decl name='bpf_prog_sub' mangled-name='bpf_prog_sub' filepath='kernel/bpf/syscall.c' line='1928' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_prog_sub'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/bpf/syscall.c' line='1928' column='1'/>
+ <parameter type-id='95e97e5e' name='i' filepath='kernel/bpf/syscall.c' line='1928' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<var-decl name='bpf_stats_enabled_key' type-id='237c0d27' mangled-name='bpf_stats_enabled_key' visibility='default' filepath='kernel/bpf/core.c' line='2445' column='1' elf-symbol-id='bpf_stats_enabled_key'/>
- <function-decl name='bpf_trace_run1' mangled-name='bpf_trace_run1' filepath='kernel/trace/bpf_trace.c' line='1901' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run1'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1901' column='1'/>
- <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1901' column='1'/>
+ <function-decl name='bpf_trace_run1' mangled-name='bpf_trace_run1' filepath='kernel/trace/bpf_trace.c' line='1905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run1'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
+ <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='bpf_trace_run10' mangled-name='bpf_trace_run10' filepath='kernel/trace/bpf_trace.c' line='1910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run10'>
+ <function-decl name='bpf_trace_run10' mangled-name='bpf_trace_run10' filepath='kernel/trace/bpf_trace.c' line='1914' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run10'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+ <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+ <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+ <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+ <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+ <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+ <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+ <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+ <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+ <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+ <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1914' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='bpf_trace_run11' mangled-name='bpf_trace_run11' filepath='kernel/trace/bpf_trace.c' line='1915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run11'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <parameter type-id='91ce1af9' name='arg10' filepath='kernel/trace/bpf_trace.c' line='1915' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='bpf_trace_run12' mangled-name='bpf_trace_run12' filepath='kernel/trace/bpf_trace.c' line='1916' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run12'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg10' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <parameter type-id='91ce1af9' name='arg11' filepath='kernel/trace/bpf_trace.c' line='1916' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='bpf_trace_run2' mangled-name='bpf_trace_run2' filepath='kernel/trace/bpf_trace.c' line='1906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run2'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
+ <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
+ <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='bpf_trace_run3' mangled-name='bpf_trace_run3' filepath='kernel/trace/bpf_trace.c' line='1907' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run3'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
+ <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
+ <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
+ <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='bpf_trace_run4' mangled-name='bpf_trace_run4' filepath='kernel/trace/bpf_trace.c' line='1908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run4'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
+ <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
+ <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
+ <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
+ <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='bpf_trace_run5' mangled-name='bpf_trace_run5' filepath='kernel/trace/bpf_trace.c' line='1909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run5'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+ <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+ <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+ <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+ <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+ <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='bpf_trace_run6' mangled-name='bpf_trace_run6' filepath='kernel/trace/bpf_trace.c' line='1910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run6'>
<parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
<parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
<parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
@@ -132627,13 +133061,9 @@
<parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
<parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
<parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
- <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
- <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
- <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
- <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1910' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='bpf_trace_run11' mangled-name='bpf_trace_run11' filepath='kernel/trace/bpf_trace.c' line='1911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run11'>
+ <function-decl name='bpf_trace_run7' mangled-name='bpf_trace_run7' filepath='kernel/trace/bpf_trace.c' line='1911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run7'>
<parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
<parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
<parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
@@ -132642,13 +133072,9 @@
<parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
<parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
<parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
- <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
- <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
- <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
- <parameter type-id='91ce1af9' name='arg10' filepath='kernel/trace/bpf_trace.c' line='1911' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='bpf_trace_run12' mangled-name='bpf_trace_run12' filepath='kernel/trace/bpf_trace.c' line='1912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run12'>
+ <function-decl name='bpf_trace_run8' mangled-name='bpf_trace_run8' filepath='kernel/trace/bpf_trace.c' line='1912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run8'>
<parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
<parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
<parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
@@ -132658,90 +133084,23 @@
<parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
<parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
<parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
- <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
- <parameter type-id='91ce1af9' name='arg9' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
- <parameter type-id='91ce1af9' name='arg10' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
- <parameter type-id='91ce1af9' name='arg11' filepath='kernel/trace/bpf_trace.c' line='1912' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='bpf_trace_run2' mangled-name='bpf_trace_run2' filepath='kernel/trace/bpf_trace.c' line='1902' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run2'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1902' column='1'/>
- <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1902' column='1'/>
- <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1902' column='1'/>
+ <function-decl name='bpf_trace_run9' mangled-name='bpf_trace_run9' filepath='kernel/trace/bpf_trace.c' line='1913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run9'>
+ <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+ <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+ <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+ <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+ <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+ <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+ <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+ <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+ <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
+ <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1913' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='bpf_trace_run3' mangled-name='bpf_trace_run3' filepath='kernel/trace/bpf_trace.c' line='1903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run3'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1903' column='1'/>
- <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1903' column='1'/>
- <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1903' column='1'/>
- <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1903' column='1'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='bpf_trace_run4' mangled-name='bpf_trace_run4' filepath='kernel/trace/bpf_trace.c' line='1904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run4'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1904' column='1'/>
- <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1904' column='1'/>
- <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1904' column='1'/>
- <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1904' column='1'/>
- <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1904' column='1'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='bpf_trace_run5' mangled-name='bpf_trace_run5' filepath='kernel/trace/bpf_trace.c' line='1905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run5'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
- <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
- <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
- <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
- <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
- <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1905' column='1'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='bpf_trace_run6' mangled-name='bpf_trace_run6' filepath='kernel/trace/bpf_trace.c' line='1906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run6'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
- <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
- <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
- <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
- <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
- <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
- <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1906' column='1'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='bpf_trace_run7' mangled-name='bpf_trace_run7' filepath='kernel/trace/bpf_trace.c' line='1907' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run7'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
- <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
- <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
- <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
- <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
- <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
- <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
- <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1907' column='1'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='bpf_trace_run8' mangled-name='bpf_trace_run8' filepath='kernel/trace/bpf_trace.c' line='1908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run8'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
- <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
- <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
- <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
- <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
- <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
- <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
- <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
- <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1908' column='1'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='bpf_trace_run9' mangled-name='bpf_trace_run9' filepath='kernel/trace/bpf_trace.c' line='1909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_trace_run9'>
- <parameter type-id='bdcee7ae' name='prog' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
- <parameter type-id='91ce1af9' name='arg0' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
- <parameter type-id='91ce1af9' name='arg1' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
- <parameter type-id='91ce1af9' name='arg2' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
- <parameter type-id='91ce1af9' name='arg3' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
- <parameter type-id='91ce1af9' name='arg4' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
- <parameter type-id='91ce1af9' name='arg5' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
- <parameter type-id='91ce1af9' name='arg6' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
- <parameter type-id='91ce1af9' name='arg7' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
- <parameter type-id='91ce1af9' name='arg8' filepath='kernel/trace/bpf_trace.c' line='1909' column='1'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='bpf_warn_invalid_xdp_action' mangled-name='bpf_warn_invalid_xdp_action' filepath='net/core/filter.c' line='8228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_warn_invalid_xdp_action'>
- <parameter type-id='19c2251e' name='act' filepath='net/core/filter.c' line='8228' column='1'/>
+ <function-decl name='bpf_warn_invalid_xdp_action' mangled-name='bpf_warn_invalid_xdp_action' filepath='net/core/filter.c' line='8231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bpf_warn_invalid_xdp_action'>
+ <parameter type-id='19c2251e' name='act' filepath='net/core/filter.c' line='8231' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='bsearch' mangled-name='bsearch' filepath='lib/bsearch.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bsearch'>
@@ -132875,9 +133234,9 @@
<parameter type-id='d504f73d' name='nb' filepath='drivers/base/bus.c' line='882' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='bus_set_iommu' mangled-name='bus_set_iommu' filepath='drivers/iommu/iommu.c' line='1884' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_set_iommu'>
- <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1884' column='1'/>
- <parameter type-id='f1ac64d0' name='ops' filepath='drivers/iommu/iommu.c' line='1884' column='1'/>
+ <function-decl name='bus_set_iommu' mangled-name='bus_set_iommu' filepath='drivers/iommu/iommu.c' line='1900' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_set_iommu'>
+ <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1900' column='1'/>
+ <parameter type-id='f1ac64d0' name='ops' filepath='drivers/iommu/iommu.c' line='1900' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='bus_unregister' mangled-name='bus_unregister' filepath='drivers/base/bus.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='bus_unregister'>
@@ -132907,9 +133266,9 @@
<parameter type-id='4edd56e3' name='func' filepath='kernel/rcu/tasks.h' line='551' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='call_rcu_tasks_trace' mangled-name='call_rcu_tasks_trace' filepath='kernel/rcu/tasks.h' line='1226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_tasks_trace'>
- <parameter type-id='69c138b1' name='rhp' filepath='kernel/rcu/tasks.h' line='1226' column='1'/>
- <parameter type-id='4edd56e3' name='func' filepath='kernel/rcu/tasks.h' line='1226' column='1'/>
+ <function-decl name='call_rcu_tasks_trace' mangled-name='call_rcu_tasks_trace' filepath='kernel/rcu/tasks.h' line='1212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_rcu_tasks_trace'>
+ <parameter type-id='69c138b1' name='rhp' filepath='kernel/rcu/tasks.h' line='1212' column='1'/>
+ <parameter type-id='4edd56e3' name='func' filepath='kernel/rcu/tasks.h' line='1212' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='call_srcu' mangled-name='call_srcu' filepath='kernel/rcu/srcutree.c' line='903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='call_srcu'>
@@ -133214,10 +133573,10 @@
<parameter type-id='e7f9d97b' name='dst_cssp' filepath='kernel/cgroup/cgroup.c' line='2457' column='1'/>
<return type-id='f23e2572'/>
</function-decl>
- <function-decl name='check_preempt_curr' mangled-name='check_preempt_curr' filepath='kernel/sched/core.c' line='2139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='check_preempt_curr'>
- <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2139' column='1'/>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2139' column='1'/>
- <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2139' column='1'/>
+ <function-decl name='check_preempt_curr' mangled-name='check_preempt_curr' filepath='kernel/sched/core.c' line='2136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='check_preempt_curr'>
+ <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2136' column='1'/>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2136' column='1'/>
+ <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2136' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='check_zeroed_user' mangled-name='check_zeroed_user' filepath='lib/usercopy.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='check_zeroed_user'>
@@ -133610,6 +133969,11 @@
<parameter type-id='2d9c5390' name='cl' filepath='drivers/clk/clkdev.c' line='259' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='clockevent_delta2ns' mangled-name='clockevent_delta2ns' filepath='kernel/time/clockevents.c' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clockevent_delta2ns'>
+ <parameter type-id='7359adad' name='latch' filepath='kernel/time/clockevents.c' line='85' column='1'/>
+ <parameter type-id='aff725d5' name='evt' filepath='kernel/time/clockevents.c' line='85' column='1'/>
+ <return type-id='91ce1af9'/>
+ </function-decl>
<function-decl name='clockevents_config_and_register' mangled-name='clockevents_config_and_register' filepath='kernel/time/clockevents.c' line='504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clockevents_config_and_register'>
<parameter type-id='aff725d5' name='dev' filepath='kernel/time/clockevents.c' line='504' column='1'/>
<parameter type-id='19c2251e' name='freq' filepath='kernel/time/clockevents.c' line='505' column='1'/>
@@ -133617,6 +133981,10 @@
<parameter type-id='7359adad' name='max_delta' filepath='kernel/time/clockevents.c' line='506' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='clockevents_register_device' mangled-name='clockevents_register_device' filepath='kernel/time/clockevents.c' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clockevents_register_device'>
+ <parameter type-id='aff725d5' name='dev' filepath='kernel/time/clockevents.c' line='443' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='clocks_calc_mult_shift' mangled-name='clocks_calc_mult_shift' filepath='kernel/time/clocksource.c' line='47' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='clocks_calc_mult_shift'>
<parameter type-id='f9409001' name='mult' filepath='kernel/time/clocksource.c' line='47' column='1'/>
<parameter type-id='f9409001' name='shift' filepath='kernel/time/clocksource.c' line='47' column='1'/>
@@ -133646,26 +134014,26 @@
<parameter type-id='f0981eeb' name='fd' filepath='fs/file.c' line='662' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='cma_alloc' mangled-name='cma_alloc' filepath='mm/cma.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_alloc'>
- <parameter type-id='6f67b38a' name='cma' filepath='mm/cma.c' line='440' column='1'/>
- <parameter type-id='7359adad' name='count' filepath='mm/cma.c' line='440' column='1'/>
- <parameter type-id='f0981eeb' name='align' filepath='mm/cma.c' line='441' column='1'/>
- <parameter type-id='b50a4934' name='no_warn' filepath='mm/cma.c' line='441' column='1'/>
+ <function-decl name='cma_alloc' mangled-name='cma_alloc' filepath='mm/cma.c' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_alloc'>
+ <parameter type-id='6f67b38a' name='cma' filepath='mm/cma.c' line='436' column='1'/>
+ <parameter type-id='7359adad' name='count' filepath='mm/cma.c' line='436' column='1'/>
+ <parameter type-id='f0981eeb' name='align' filepath='mm/cma.c' line='437' column='1'/>
+ <parameter type-id='b50a4934' name='no_warn' filepath='mm/cma.c' line='437' column='1'/>
<return type-id='02f11ed4'/>
</function-decl>
- <function-decl name='cma_for_each_area' mangled-name='cma_for_each_area' filepath='mm/cma.c' line='603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_for_each_area'>
- <parameter type-id='0b3f2e4c' name='it' filepath='mm/cma.c' line='603' column='1'/>
- <parameter type-id='eaa32e2f' name='data' filepath='mm/cma.c' line='603' column='1'/>
+ <function-decl name='cma_for_each_area' mangled-name='cma_for_each_area' filepath='mm/cma.c' line='599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_for_each_area'>
+ <parameter type-id='0b3f2e4c' name='it' filepath='mm/cma.c' line='599' column='1'/>
+ <parameter type-id='eaa32e2f' name='data' filepath='mm/cma.c' line='599' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='cma_get_name' mangled-name='cma_get_name' filepath='mm/cma.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_get_name'>
<parameter type-id='4605de5b' name='cma' filepath='mm/cma.c' line='60' column='1'/>
<return type-id='80f4b756'/>
</function-decl>
- <function-decl name='cma_release' mangled-name='cma_release' filepath='mm/cma.c' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_release'>
- <parameter type-id='6f67b38a' name='cma' filepath='mm/cma.c' line='578' column='1'/>
- <parameter type-id='b72f2447' name='pages' filepath='mm/cma.c' line='578' column='1'/>
- <parameter type-id='7359adad' name='count' filepath='mm/cma.c' line='579' column='1'/>
+ <function-decl name='cma_release' mangled-name='cma_release' filepath='mm/cma.c' line='574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cma_release'>
+ <parameter type-id='6f67b38a' name='cma' filepath='mm/cma.c' line='574' column='1'/>
+ <parameter type-id='b72f2447' name='pages' filepath='mm/cma.c' line='574' column='1'/>
+ <parameter type-id='7359adad' name='count' filepath='mm/cma.c' line='575' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
<function-decl name='compat_ptr_ioctl' mangled-name='compat_ptr_ioctl' filepath='fs/ioctl.c' line='905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='compat_ptr_ioctl'>
@@ -133682,9 +134050,9 @@
<parameter type-id='389faaf7' name='x' filepath='kernel/sched/completion.c' line='57' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='complete_and_exit' mangled-name='complete_and_exit' filepath='kernel/exit.c' line='883' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='complete_and_exit'>
- <parameter type-id='389faaf7' name='comp' filepath='kernel/exit.c' line='883' column='1'/>
- <parameter type-id='bd54fe1a' name='code' filepath='kernel/exit.c' line='883' column='1'/>
+ <function-decl name='complete_and_exit' mangled-name='complete_and_exit' filepath='kernel/exit.c' line='955' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='complete_and_exit'>
+ <parameter type-id='389faaf7' name='comp' filepath='kernel/exit.c' line='955' column='1'/>
+ <parameter type-id='bd54fe1a' name='code' filepath='kernel/exit.c' line='955' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='completion_done' mangled-name='completion_done' filepath='kernel/sched/completion.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='completion_done'>
@@ -133920,12 +134288,12 @@
<function-decl name='cpufreq_boost_enabled' mangled-name='cpufreq_boost_enabled' filepath='drivers/cpufreq/cpufreq.c' line='2769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_boost_enabled'>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='cpufreq_cooling_register' mangled-name='cpufreq_cooling_register' filepath='drivers/thermal/cpufreq_cooling.c' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cooling_register'>
- <parameter type-id='343c3ae4' name='policy' filepath='drivers/thermal/cpufreq_cooling.c' line='630' column='1'/>
+ <function-decl name='cpufreq_cooling_register' mangled-name='cpufreq_cooling_register' filepath='drivers/thermal/cpufreq_cooling.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cooling_register'>
+ <parameter type-id='343c3ae4' name='policy' filepath='drivers/thermal/cpufreq_cooling.c' line='627' column='1'/>
<return type-id='2feec21f'/>
</function-decl>
- <function-decl name='cpufreq_cooling_unregister' mangled-name='cpufreq_cooling_unregister' filepath='drivers/thermal/cpufreq_cooling.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cooling_unregister'>
- <parameter type-id='2feec21f' name='cdev' filepath='drivers/thermal/cpufreq_cooling.c' line='689' column='1'/>
+ <function-decl name='cpufreq_cooling_unregister' mangled-name='cpufreq_cooling_unregister' filepath='drivers/thermal/cpufreq_cooling.c' line='686' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cooling_unregister'>
+ <parameter type-id='2feec21f' name='cdev' filepath='drivers/thermal/cpufreq_cooling.c' line='686' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='cpufreq_cpu_get' mangled-name='cpufreq_cpu_get' filepath='drivers/cpufreq/cpufreq.c' line='219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cpufreq_cpu_get'>
@@ -134296,6 +134664,12 @@
<parameter type-id='f28646d2' name='rta' filepath='crypto/algapi.c' line='876' column='1'/>
<return type-id='80f4b756'/>
</function-decl>
+ <function-decl name='crypto_authenc_extractkeys' mangled-name='crypto_authenc_extractkeys' filepath='crypto/authenc.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_authenc_extractkeys'>
+ <parameter type-id='704d2394' name='keys' filepath='crypto/authenc.c' line='46' column='1'/>
+ <parameter type-id='bbaf3419' name='key' filepath='crypto/authenc.c' line='46' column='1'/>
+ <parameter type-id='f0981eeb' name='keylen' filepath='crypto/authenc.c' line='47' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='crypto_check_attr_type' mangled-name='crypto_check_attr_type' filepath='crypto/algapi.c' line='860' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='crypto_check_attr_type'>
<parameter type-id='c161b868' name='tb' filepath='crypto/algapi.c' line='860' column='1'/>
<parameter type-id='19c2251e' name='type' filepath='crypto/algapi.c' line='860' column='1'/>
@@ -134707,6 +135081,11 @@
<parameter type-id='b316d9a3' name='name' filepath='fs/dcache.c' line='2188' column='1'/>
<return type-id='27675065'/>
</function-decl>
+ <function-decl name='d_alloc_name' mangled-name='d_alloc_name' filepath='fs/dcache.c' line='1879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_alloc_name'>
+ <parameter type-id='27675065' name='parent' filepath='fs/dcache.c' line='1879' column='1'/>
+ <parameter type-id='80f4b756' name='name' filepath='fs/dcache.c' line='1879' column='1'/>
+ <return type-id='27675065'/>
+ </function-decl>
<function-decl name='d_delete' mangled-name='d_delete' filepath='fs/dcache.c' line='2494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='d_delete'>
<parameter type-id='27675065' name='dentry' filepath='fs/dcache.c' line='2494' column='1'/>
<return type-id='48b5725f'/>
@@ -134794,10 +135173,10 @@
<parameter type-id='42c8f564' name='s' filepath='fs/super.c' line='329' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='deactivate_task' mangled-name='deactivate_task' filepath='kernel/sched/core.c' line='2054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='deactivate_task'>
- <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2054' column='1'/>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2054' column='1'/>
- <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2054' column='1'/>
+ <function-decl name='deactivate_task' mangled-name='deactivate_task' filepath='kernel/sched/core.c' line='2051' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='deactivate_task'>
+ <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='2051' column='1'/>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2051' column='1'/>
+ <parameter type-id='95e97e5e' name='flags' filepath='kernel/sched/core.c' line='2051' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='debug_locks_off' mangled-name='debug_locks_off' filepath='lib/debug_locks.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='debug_locks_off'>
@@ -135000,11 +135379,11 @@
<parameter type-id='95e97e5e' name='whence' filepath='fs/read_write.c' line='236' column='1'/>
<return type-id='69bf7bee'/>
</function-decl>
- <function-decl name='default_wake_function' mangled-name='default_wake_function' filepath='kernel/sched/core.c' line='6948' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='default_wake_function'>
- <parameter type-id='ba9aa326' name='curr' filepath='kernel/sched/core.c' line='6948' column='1'/>
- <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/core.c' line='6948' column='1'/>
- <parameter type-id='95e97e5e' name='wake_flags' filepath='kernel/sched/core.c' line='6948' column='1'/>
- <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/core.c' line='6949' column='1'/>
+ <function-decl name='default_wake_function' mangled-name='default_wake_function' filepath='kernel/sched/core.c' line='6915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='default_wake_function'>
+ <parameter type-id='ba9aa326' name='curr' filepath='kernel/sched/core.c' line='6915' column='1'/>
+ <parameter type-id='f0981eeb' name='mode' filepath='kernel/sched/core.c' line='6915' column='1'/>
+ <parameter type-id='95e97e5e' name='wake_flags' filepath='kernel/sched/core.c' line='6915' column='1'/>
+ <parameter type-id='eaa32e2f' name='key' filepath='kernel/sched/core.c' line='6916' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='deferred_free' mangled-name='deferred_free' filepath='drivers/dma-buf/heaps/deferred-free-helper.c' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='deferred_free'>
@@ -135729,8 +136108,8 @@
<parameter type-id='95e97e5e' name='alen' filepath='drivers/base/property.c' line='1016' column='1'/>
<return type-id='eaa32e2f'/>
</function-decl>
- <function-decl name='device_get_match_data' mangled-name='device_get_match_data' filepath='drivers/base/property.c' line='1278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_match_data'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='1278' column='1'/>
+ <function-decl name='device_get_match_data' mangled-name='device_get_match_data' filepath='drivers/base/property.c' line='1284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_match_data'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/property.c' line='1284' column='1'/>
<return type-id='eaa32e2f'/>
</function-decl>
<function-decl name='device_get_named_child_node' mangled-name='device_get_named_child_node' filepath='drivers/base/property.c' line='815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_get_named_child_node'>
@@ -135849,8 +136228,8 @@
<parameter type-id='fa0b179b' name='dev' filepath='drivers/base/core.c' line='3482' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='device_release_driver' mangled-name='device_release_driver' filepath='drivers/base/dd.c' line='1269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_release_driver'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/dd.c' line='1269' column='1'/>
+ <function-decl name='device_release_driver' mangled-name='device_release_driver' filepath='drivers/base/dd.c' line='1273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_release_driver'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/base/dd.c' line='1273' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='device_remove_bin_file' mangled-name='device_remove_bin_file' filepath='drivers/base/core.c' line='2829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='device_remove_bin_file'>
@@ -136482,6 +136861,17 @@
<parameter type-id='b59d7dce' name='priv' filepath='drivers/pci/probe.c' line='624' column='1'/>
<return type-id='cb0dbc3c'/>
</function-decl>
+ <function-decl name='devm_pci_remap_cfg_resource' mangled-name='devm_pci_remap_cfg_resource' filepath='drivers/pci/pci.c' line='4275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pci_remap_cfg_resource'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/pci/pci.c' line='4275' column='1'/>
+ <parameter type-id='c9d64c0d' name='res' filepath='drivers/pci/pci.c' line='4276' column='1'/>
+ <return type-id='eaa32e2f'/>
+ </function-decl>
+ <function-decl name='devm_pci_remap_cfgspace' mangled-name='devm_pci_remap_cfgspace' filepath='drivers/pci/pci.c' line='4235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_pci_remap_cfgspace'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/pci/pci.c' line='4235' column='1'/>
+ <parameter type-id='acc63fdf' name='offset' filepath='drivers/pci/pci.c' line='4236' column='1'/>
+ <parameter type-id='acc63fdf' name='size' filepath='drivers/pci/pci.c' line='4237' column='1'/>
+ <return type-id='eaa32e2f'/>
+ </function-decl>
<function-decl name='devm_phy_create' mangled-name='devm_phy_create' filepath='drivers/phy/phy-core.c' line='975' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_phy_create'>
<parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='975' column='1'/>
<parameter type-id='9a537bbe' name='node' filepath='drivers/phy/phy-core.c' line='975' column='1'/>
@@ -136677,6 +137067,11 @@
<parameter type-id='d504f73d' name='nb' filepath='drivers/regulator/devres.c' line='405' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='devm_release_resource' mangled-name='devm_release_resource' filepath='kernel/resource.c' line='1523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_release_resource'>
+ <parameter type-id='fa0b179b' name='dev' filepath='kernel/resource.c' line='1523' column='1'/>
+ <parameter type-id='c9d64c0d' name='new' filepath='kernel/resource.c' line='1523' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='devm_remove_action' mangled-name='devm_remove_action' filepath='drivers/base/devres.c' line='754' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='devm_remove_action'>
<parameter type-id='fa0b179b' name='dev' filepath='drivers/base/devres.c' line='754' column='1'/>
<parameter type-id='b7f9d8e6' name='action' filepath='drivers/base/devres.c' line='754' column='1'/>
@@ -136855,10 +137250,10 @@
<parameter type-id='7e666abe' name='inode' filepath='fs/inode.c' line='1013' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='disk_end_io_acct' mangled-name='disk_end_io_acct' filepath='block/blk-core.c' line='1365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_end_io_acct'>
- <parameter type-id='33c599da' name='disk' filepath='block/blk-core.c' line='1365' column='1'/>
- <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='1365' column='1'/>
- <parameter type-id='7359adad' name='start_time' filepath='block/blk-core.c' line='1366' column='1'/>
+ <function-decl name='disk_end_io_acct' mangled-name='disk_end_io_acct' filepath='block/blk-core.c' line='1361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_end_io_acct'>
+ <parameter type-id='33c599da' name='disk' filepath='block/blk-core.c' line='1361' column='1'/>
+ <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='1361' column='1'/>
+ <parameter type-id='7359adad' name='start_time' filepath='block/blk-core.c' line='1362' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='disk_stack_limits' mangled-name='disk_stack_limits' filepath='block/blk-settings.c' line='664' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_stack_limits'>
@@ -136867,16 +137262,24 @@
<parameter type-id='a42536cd' name='offset' filepath='block/blk-settings.c' line='665' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='disk_start_io_acct' mangled-name='disk_start_io_acct' filepath='block/blk-core.c' line='1337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_start_io_acct'>
- <parameter type-id='33c599da' name='disk' filepath='block/blk-core.c' line='1337' column='1'/>
- <parameter type-id='f0981eeb' name='sectors' filepath='block/blk-core.c' line='1337' column='1'/>
- <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='1338' column='1'/>
+ <function-decl name='disk_start_io_acct' mangled-name='disk_start_io_acct' filepath='block/blk-core.c' line='1333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='disk_start_io_acct'>
+ <parameter type-id='33c599da' name='disk' filepath='block/blk-core.c' line='1333' column='1'/>
+ <parameter type-id='f0981eeb' name='sectors' filepath='block/blk-core.c' line='1333' column='1'/>
+ <parameter type-id='f0981eeb' name='op' filepath='block/blk-core.c' line='1334' column='1'/>
<return type-id='7359adad'/>
</function-decl>
<function-decl name='display_timings_release' mangled-name='display_timings_release' filepath='drivers/video/display_timing.c' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='display_timings_release'>
<parameter type-id='32e774d9' name='disp' filepath='drivers/video/display_timing.c' line='12' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='divider_determine_rate' mangled-name='divider_determine_rate' filepath='drivers/clk/clk-divider.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='divider_determine_rate'>
+ <parameter type-id='3aaeef89' name='hw' filepath='drivers/clk/clk-divider.c' line='346' column='1'/>
+ <parameter type-id='23a0ad0a' name='req' filepath='drivers/clk/clk-divider.c' line='346' column='1'/>
+ <parameter type-id='caf2596f' name='table' filepath='drivers/clk/clk-divider.c' line='347' column='1'/>
+ <parameter type-id='f9b06939' name='width' filepath='drivers/clk/clk-divider.c' line='347' column='1'/>
+ <parameter type-id='7359adad' name='flags' filepath='drivers/clk/clk-divider.c' line='348' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='divider_get_val' mangled-name='divider_get_val' filepath='drivers/clk/clk-divider.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='divider_get_val'>
<parameter type-id='7359adad' name='rate' filepath='drivers/clk/clk-divider.c' line='470' column='1'/>
<parameter type-id='7359adad' name='parent_rate' filepath='drivers/clk/clk-divider.c' line='470' column='1'/>
@@ -136939,17 +137342,17 @@
<parameter type-id='3eb7c31c' name='gfp' filepath='kernel/dma/mapping.c' line='563' column='1'/>
<return type-id='02f11ed4'/>
</function-decl>
- <function-decl name='dma_async_device_register' mangled-name='dma_async_device_register' filepath='drivers/dma/dmaengine.c' line='1140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_device_register'>
- <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1140' column='1'/>
+ <function-decl name='dma_async_device_register' mangled-name='dma_async_device_register' filepath='drivers/dma/dmaengine.c' line='1141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_device_register'>
+ <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1141' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='dma_async_device_unregister' mangled-name='dma_async_device_unregister' filepath='drivers/dma/dmaengine.c' line='1311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_device_unregister'>
- <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1311' column='1'/>
+ <function-decl name='dma_async_device_unregister' mangled-name='dma_async_device_unregister' filepath='drivers/dma/dmaengine.c' line='1312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_device_unregister'>
+ <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1312' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='dma_async_tx_descriptor_init' mangled-name='dma_async_tx_descriptor_init' filepath='drivers/dma/dmaengine.c' line='1497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_tx_descriptor_init'>
- <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/dmaengine.c' line='1497' column='1'/>
- <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='1498' column='1'/>
+ <function-decl name='dma_async_tx_descriptor_init' mangled-name='dma_async_tx_descriptor_init' filepath='drivers/dma/dmaengine.c' line='1498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_async_tx_descriptor_init'>
+ <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/dmaengine.c' line='1498' column='1'/>
+ <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='1499' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='dma_buf_attach' mangled-name='dma_buf_attach' filepath='drivers/dma-buf/dma-buf.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_buf_attach'>
@@ -137184,8 +137587,8 @@
<parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='586' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='dma_get_any_slave_channel' mangled-name='dma_get_any_slave_channel' filepath='drivers/dma/dmaengine.c' line='727' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_any_slave_channel'>
- <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='727' column='1'/>
+ <function-decl name='dma_get_any_slave_channel' mangled-name='dma_get_any_slave_channel' filepath='drivers/dma/dmaengine.c' line='728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_any_slave_channel'>
+ <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='728' column='1'/>
<return type-id='27f3f5d8'/>
</function-decl>
<function-decl name='dma_get_required_mask' mangled-name='dma_get_required_mask' filepath='kernel/dma/mapping.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_required_mask'>
@@ -137201,13 +137604,13 @@
<parameter type-id='7359adad' name='attrs' filepath='kernel/dma/mapping.c' line='390' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='dma_get_slave_caps' mangled-name='dma_get_slave_caps' filepath='drivers/dma/dmaengine.c' line='570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_slave_caps'>
- <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='570' column='1'/>
- <parameter type-id='d9f19b23' name='caps' filepath='drivers/dma/dmaengine.c' line='570' column='1'/>
+ <function-decl name='dma_get_slave_caps' mangled-name='dma_get_slave_caps' filepath='drivers/dma/dmaengine.c' line='571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_slave_caps'>
+ <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='571' column='1'/>
+ <parameter type-id='d9f19b23' name='caps' filepath='drivers/dma/dmaengine.c' line='571' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='dma_get_slave_channel' mangled-name='dma_get_slave_channel' filepath='drivers/dma/dmaengine.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_slave_channel'>
- <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='696' column='1'/>
+ <function-decl name='dma_get_slave_channel' mangled-name='dma_get_slave_channel' filepath='drivers/dma/dmaengine.c' line='697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_get_slave_channel'>
+ <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='697' column='1'/>
<return type-id='27f3f5d8'/>
</function-decl>
<function-decl name='dma_heap_add' mangled-name='dma_heap_add' filepath='drivers/dma-buf/dma-heap.c' line='305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_heap_add'>
@@ -137321,13 +137724,13 @@
<parameter type-id='cf29c9b3' name='dma' filepath='mm/dmapool.c' line='404' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='dma_release_channel' mangled-name='dma_release_channel' filepath='drivers/dma/dmaengine.c' line='903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_release_channel'>
- <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='903' column='1'/>
+ <function-decl name='dma_release_channel' mangled-name='dma_release_channel' filepath='drivers/dma/dmaengine.c' line='904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_release_channel'>
+ <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='904' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='dma_request_chan' mangled-name='dma_request_chan' filepath='drivers/dma/dmaengine.c' line='813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_request_chan'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma/dmaengine.c' line='813' column='1'/>
- <parameter type-id='80f4b756' name='name' filepath='drivers/dma/dmaengine.c' line='813' column='1'/>
+ <function-decl name='dma_request_chan' mangled-name='dma_request_chan' filepath='drivers/dma/dmaengine.c' line='814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_request_chan'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma/dmaengine.c' line='814' column='1'/>
+ <parameter type-id='80f4b756' name='name' filepath='drivers/dma/dmaengine.c' line='814' column='1'/>
<return type-id='27f3f5d8'/>
</function-decl>
<function-decl name='dma_resv_add_excl_fence' mangled-name='dma_resv_add_excl_fence' filepath='drivers/dma-buf/dma-resv.c' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_resv_add_excl_fence'>
@@ -137372,8 +137775,8 @@
<parameter type-id='7359adad' name='timeout' filepath='drivers/dma-buf/dma-resv.c' line='513' column='1'/>
<return type-id='bd54fe1a'/>
</function-decl>
- <function-decl name='dma_run_dependencies' mangled-name='dma_run_dependencies' filepath='drivers/dma/dmaengine.c' line='1612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_run_dependencies'>
- <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/dmaengine.c' line='1612' column='1'/>
+ <function-decl name='dma_run_dependencies' mangled-name='dma_run_dependencies' filepath='drivers/dma/dmaengine.c' line='1613' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_run_dependencies'>
+ <parameter type-id='0e3f80d9' name='tx' filepath='drivers/dma/dmaengine.c' line='1613' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='dma_set_coherent_mask' mangled-name='dma_set_coherent_mask' filepath='kernel/dma/mapping.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_set_coherent_mask'>
@@ -137419,9 +137822,9 @@
<parameter type-id='eea6b025' name='dir' filepath='kernel/dma/mapping.c' line='336' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='dma_sync_wait' mangled-name='dma_sync_wait' filepath='drivers/dma/dmaengine.c' line='519' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_sync_wait'>
- <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='519' column='1'/>
- <parameter type-id='6478ea0a' name='cookie' filepath='drivers/dma/dmaengine.c' line='519' column='1'/>
+ <function-decl name='dma_sync_wait' mangled-name='dma_sync_wait' filepath='drivers/dma/dmaengine.c' line='520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_sync_wait'>
+ <parameter type-id='27f3f5d8' name='chan' filepath='drivers/dma/dmaengine.c' line='520' column='1'/>
+ <parameter type-id='6478ea0a' name='cookie' filepath='drivers/dma/dmaengine.c' line='520' column='1'/>
<return type-id='02ac9d9d'/>
</function-decl>
<function-decl name='dma_unmap_page_attrs' mangled-name='dma_unmap_page_attrs' filepath='kernel/dma/mapping.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dma_unmap_page_attrs'>
@@ -137477,18 +137880,18 @@
<parameter type-id='02f11ed4' name='page' filepath='drivers/dma-buf/heaps/page_pool.c' line='108' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='dmaengine_get_unmap_data' mangled-name='dmaengine_get_unmap_data' filepath='drivers/dma/dmaengine.c' line='1480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaengine_get_unmap_data'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma/dmaengine.c' line='1480' column='1'/>
- <parameter type-id='95e97e5e' name='nr' filepath='drivers/dma/dmaengine.c' line='1480' column='1'/>
- <parameter type-id='3eb7c31c' name='flags' filepath='drivers/dma/dmaengine.c' line='1480' column='1'/>
+ <function-decl name='dmaengine_get_unmap_data' mangled-name='dmaengine_get_unmap_data' filepath='drivers/dma/dmaengine.c' line='1481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaengine_get_unmap_data'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/dma/dmaengine.c' line='1481' column='1'/>
+ <parameter type-id='95e97e5e' name='nr' filepath='drivers/dma/dmaengine.c' line='1481' column='1'/>
+ <parameter type-id='3eb7c31c' name='flags' filepath='drivers/dma/dmaengine.c' line='1481' column='1'/>
<return type-id='e220a5e2'/>
</function-decl>
- <function-decl name='dmaengine_unmap_put' mangled-name='dmaengine_unmap_put' filepath='drivers/dma/dmaengine.c' line='1431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaengine_unmap_put'>
- <parameter type-id='e220a5e2' name='unmap' filepath='drivers/dma/dmaengine.c' line='1431' column='1'/>
+ <function-decl name='dmaengine_unmap_put' mangled-name='dmaengine_unmap_put' filepath='drivers/dma/dmaengine.c' line='1432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaengine_unmap_put'>
+ <parameter type-id='e220a5e2' name='unmap' filepath='drivers/dma/dmaengine.c' line='1432' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='dmaenginem_async_device_register' mangled-name='dmaenginem_async_device_register' filepath='drivers/dma/dmaengine.c' line='1347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaenginem_async_device_register'>
- <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1347' column='1'/>
+ <function-decl name='dmaenginem_async_device_register' mangled-name='dmaenginem_async_device_register' filepath='drivers/dma/dmaengine.c' line='1348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmaenginem_async_device_register'>
+ <parameter type-id='c60ba652' name='device' filepath='drivers/dma/dmaengine.c' line='1348' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='dmam_alloc_attrs' mangled-name='dmam_alloc_attrs' filepath='kernel/dma/mapping.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dmam_alloc_attrs'>
@@ -137518,8 +137921,8 @@
<parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='3093' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='do_exit' mangled-name='do_exit' filepath='kernel/exit.c' line='730' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_exit'>
- <parameter type-id='bd54fe1a' name='code' filepath='kernel/exit.c' line='730' column='1'/>
+ <function-decl name='do_exit' mangled-name='do_exit' filepath='kernel/exit.c' line='777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_exit'>
+ <parameter type-id='bd54fe1a' name='code' filepath='kernel/exit.c' line='777' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='do_trace_netlink_extack' mangled-name='do_trace_netlink_extack' filepath='net/netlink/af_netlink.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='do_trace_netlink_extack'>
@@ -137548,9 +137951,9 @@
<return type-id='95e97e5e'/>
</function-decl>
<var-decl name='dotdot_name' type-id='82c73a4e' mangled-name='dotdot_name' visibility='default' filepath='fs/dcache.c' line='87' column='1' elf-symbol-id='dotdot_name'/>
- <function-decl name='double_rq_lock' mangled-name='double_rq_lock' filepath='kernel/sched/core.c' line='545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='double_rq_lock'>
- <parameter type-id='6ed6b432' name='rq1' filepath='kernel/sched/core.c' line='545' column='1'/>
- <parameter type-id='6ed6b432' name='rq2' filepath='kernel/sched/core.c' line='545' column='1'/>
+ <function-decl name='double_rq_lock' mangled-name='double_rq_lock' filepath='kernel/sched/core.c' line='542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='double_rq_lock'>
+ <parameter type-id='6ed6b432' name='rq1' filepath='kernel/sched/core.c' line='542' column='1'/>
+ <parameter type-id='6ed6b432' name='rq2' filepath='kernel/sched/core.c' line='542' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='down' mangled-name='down' filepath='kernel/locking/semaphore.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down'>
@@ -137565,16 +137968,16 @@
<parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='103' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='down_read' mangled-name='down_read' filepath='kernel/locking/rwsem.c' line='1529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read'>
- <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1529' column='1'/>
+ <function-decl name='down_read' mangled-name='down_read' filepath='kernel/locking/rwsem.c' line='1541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read'>
+ <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1541' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='down_read_killable' mangled-name='down_read_killable' filepath='kernel/locking/rwsem.c' line='1552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read_killable'>
- <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1552' column='1'/>
+ <function-decl name='down_read_killable' mangled-name='down_read_killable' filepath='kernel/locking/rwsem.c' line='1564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read_killable'>
+ <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1564' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='down_read_trylock' mangled-name='down_read_trylock' filepath='kernel/locking/rwsem.c' line='1569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read_trylock'>
- <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1569' column='1'/>
+ <function-decl name='down_read_trylock' mangled-name='down_read_trylock' filepath='kernel/locking/rwsem.c' line='1581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_read_trylock'>
+ <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1581' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='down_timeout' mangled-name='down_timeout' filepath='kernel/locking/semaphore.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_timeout'>
@@ -137586,20 +137989,20 @@
<parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='133' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='down_write' mangled-name='down_write' filepath='kernel/locking/rwsem.c' line='1582' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write'>
- <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1582' column='1'/>
+ <function-decl name='down_write' mangled-name='down_write' filepath='kernel/locking/rwsem.c' line='1594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write'>
+ <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1594' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='down_write_killable' mangled-name='down_write_killable' filepath='kernel/locking/rwsem.c' line='1593' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write_killable'>
- <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1593' column='1'/>
+ <function-decl name='down_write_killable' mangled-name='down_write_killable' filepath='kernel/locking/rwsem.c' line='1605' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write_killable'>
+ <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1605' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='down_write_trylock' mangled-name='down_write_trylock' filepath='kernel/locking/rwsem.c' line='1611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write_trylock'>
- <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1611' column='1'/>
+ <function-decl name='down_write_trylock' mangled-name='down_write_trylock' filepath='kernel/locking/rwsem.c' line='1623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='down_write_trylock'>
+ <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1623' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='downgrade_write' mangled-name='downgrade_write' filepath='kernel/locking/rwsem.c' line='1646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='downgrade_write'>
- <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1646' column='1'/>
+ <function-decl name='downgrade_write' mangled-name='downgrade_write' filepath='kernel/locking/rwsem.c' line='1658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='downgrade_write'>
+ <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1658' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='dput' mangled-name='dput' filepath='fs/dcache.c' line='869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dput'>
@@ -137674,16 +138077,16 @@
<parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1917' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='dquot_get_dqblk' mangled-name='dquot_get_dqblk' filepath='fs/quota/dquot.c' line='2623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_dqblk'>
- <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2623' column='1'/>
- <parameter type-id='72028e1c' name='qid' filepath='fs/quota/dquot.c' line='2623' column='1'/>
- <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2624' column='1'/>
+ <function-decl name='dquot_get_dqblk' mangled-name='dquot_get_dqblk' filepath='fs/quota/dquot.c' line='2625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_dqblk'>
+ <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2625' column='1'/>
+ <parameter type-id='72028e1c' name='qid' filepath='fs/quota/dquot.c' line='2625' column='1'/>
+ <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2626' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='dquot_get_next_dqblk' mangled-name='dquot_get_next_dqblk' filepath='fs/quota/dquot.c' line='2638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_next_dqblk'>
- <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2638' column='1'/>
- <parameter type-id='cc8d835a' name='qid' filepath='fs/quota/dquot.c' line='2638' column='1'/>
- <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2639' column='1'/>
+ <function-decl name='dquot_get_next_dqblk' mangled-name='dquot_get_next_dqblk' filepath='fs/quota/dquot.c' line='2640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_next_dqblk'>
+ <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2640' column='1'/>
+ <parameter type-id='cc8d835a' name='qid' filepath='fs/quota/dquot.c' line='2640' column='1'/>
+ <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2641' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='dquot_get_next_id' mangled-name='dquot_get_next_id' filepath='fs/quota/dquot.c' line='2138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_next_id'>
@@ -137691,9 +138094,9 @@
<parameter type-id='cc8d835a' name='qid' filepath='fs/quota/dquot.c' line='2138' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='dquot_get_state' mangled-name='dquot_get_state' filepath='fs/quota/dquot.c' line='2775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_state'>
- <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2775' column='1'/>
- <parameter type-id='6dcf57f3' name='state' filepath='fs/quota/dquot.c' line='2775' column='1'/>
+ <function-decl name='dquot_get_state' mangled-name='dquot_get_state' filepath='fs/quota/dquot.c' line='2777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_get_state'>
+ <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2777' column='1'/>
+ <parameter type-id='6dcf57f3' name='state' filepath='fs/quota/dquot.c' line='2777' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='dquot_initialize' mangled-name='dquot_initialize' filepath='fs/quota/dquot.c' line='1548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_initialize'>
@@ -137704,11 +138107,11 @@
<parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='1554' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='dquot_load_quota_inode' mangled-name='dquot_load_quota_inode' filepath='fs/quota/dquot.c' line='2428' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_load_quota_inode'>
- <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='2428' column='1'/>
- <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2428' column='1'/>
- <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2428' column='1'/>
- <parameter type-id='f0981eeb' name='flags' filepath='fs/quota/dquot.c' line='2429' column='1'/>
+ <function-decl name='dquot_load_quota_inode' mangled-name='dquot_load_quota_inode' filepath='fs/quota/dquot.c' line='2430' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_load_quota_inode'>
+ <parameter type-id='7e666abe' name='inode' filepath='fs/quota/dquot.c' line='2430' column='1'/>
+ <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2430' column='1'/>
+ <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2430' column='1'/>
+ <parameter type-id='f0981eeb' name='flags' filepath='fs/quota/dquot.c' line='2431' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='dquot_mark_dquot_dirty' mangled-name='dquot_mark_dquot_dirty' filepath='fs/quota/dquot.c' line='350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_mark_dquot_dirty'>
@@ -137720,39 +138123,39 @@
<parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2304' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='dquot_quota_on' mangled-name='dquot_quota_on' filepath='fs/quota/dquot.c' line='2478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_quota_on'>
- <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2478' column='1'/>
- <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2478' column='1'/>
- <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2478' column='1'/>
- <parameter type-id='a77efac3' name='path' filepath='fs/quota/dquot.c' line='2479' column='1'/>
+ <function-decl name='dquot_quota_on' mangled-name='dquot_quota_on' filepath='fs/quota/dquot.c' line='2480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_quota_on'>
+ <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2480' column='1'/>
+ <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2480' column='1'/>
+ <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2480' column='1'/>
+ <parameter type-id='a77efac3' name='path' filepath='fs/quota/dquot.c' line='2481' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='dquot_quota_on_mount' mangled-name='dquot_quota_on_mount' filepath='fs/quota/dquot.c' line='2499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_quota_on_mount'>
- <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2499' column='1'/>
- <parameter type-id='26a90f95' name='qf_name' filepath='fs/quota/dquot.c' line='2499' column='1'/>
- <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2500' column='1'/>
- <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2500' column='1'/>
+ <function-decl name='dquot_quota_on_mount' mangled-name='dquot_quota_on_mount' filepath='fs/quota/dquot.c' line='2501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_quota_on_mount'>
+ <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2501' column='1'/>
+ <parameter type-id='26a90f95' name='qf_name' filepath='fs/quota/dquot.c' line='2501' column='1'/>
+ <parameter type-id='95e97e5e' name='format_id' filepath='fs/quota/dquot.c' line='2502' column='1'/>
+ <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2502' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='dquot_release' mangled-name='dquot_release' filepath='fs/quota/dquot.c' line='499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_release'>
<parameter type-id='e9a4c848' name='dquot' filepath='fs/quota/dquot.c' line='499' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='dquot_resume' mangled-name='dquot_resume' filepath='fs/quota/dquot.c' line='2444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_resume'>
- <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2444' column='1'/>
- <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2444' column='1'/>
+ <function-decl name='dquot_resume' mangled-name='dquot_resume' filepath='fs/quota/dquot.c' line='2446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_resume'>
+ <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2446' column='1'/>
+ <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2446' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='dquot_set_dqblk' mangled-name='dquot_set_dqblk' filepath='fs/quota/dquot.c' line='2756' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_set_dqblk'>
- <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2756' column='1'/>
- <parameter type-id='72028e1c' name='qid' filepath='fs/quota/dquot.c' line='2756' column='1'/>
- <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2757' column='1'/>
+ <function-decl name='dquot_set_dqblk' mangled-name='dquot_set_dqblk' filepath='fs/quota/dquot.c' line='2758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_set_dqblk'>
+ <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2758' column='1'/>
+ <parameter type-id='72028e1c' name='qid' filepath='fs/quota/dquot.c' line='2758' column='1'/>
+ <parameter type-id='39341f7e' name='di' filepath='fs/quota/dquot.c' line='2759' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='dquot_set_dqinfo' mangled-name='dquot_set_dqinfo' filepath='fs/quota/dquot.c' line='2810' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_set_dqinfo'>
- <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2810' column='1'/>
- <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2810' column='1'/>
- <parameter type-id='66b0cee4' name='ii' filepath='fs/quota/dquot.c' line='2810' column='1'/>
+ <function-decl name='dquot_set_dqinfo' mangled-name='dquot_set_dqinfo' filepath='fs/quota/dquot.c' line='2812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_set_dqinfo'>
+ <parameter type-id='42c8f564' name='sb' filepath='fs/quota/dquot.c' line='2812' column='1'/>
+ <parameter type-id='95e97e5e' name='type' filepath='fs/quota/dquot.c' line='2812' column='1'/>
+ <parameter type-id='66b0cee4' name='ii' filepath='fs/quota/dquot.c' line='2812' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='dquot_transfer' mangled-name='dquot_transfer' filepath='fs/quota/dquot.c' line='2088' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dquot_transfer'>
@@ -137769,8 +138172,8 @@
<parameter type-id='242e3d19' name='wq' filepath='kernel/workqueue.c' line='2983' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='driver_attach' mangled-name='driver_attach' filepath='drivers/base/dd.c' line='1170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_attach'>
- <parameter type-id='00c7b870' name='drv' filepath='drivers/base/dd.c' line='1170' column='1'/>
+ <function-decl name='driver_attach' mangled-name='driver_attach' filepath='drivers/base/dd.c' line='1174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_attach'>
+ <parameter type-id='00c7b870' name='drv' filepath='drivers/base/dd.c' line='1174' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='driver_create_file' mangled-name='driver_create_file' filepath='drivers/base/driver.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='driver_create_file'>
@@ -138334,9 +138737,9 @@
<parameter type-id='7359adad' name='arg' filepath='drivers/gpu/drm/drm_ioc32.c' line='971' column='1'/>
<return type-id='bd54fe1a'/>
</function-decl>
- <function-decl name='drm_connector_atomic_hdr_metadata_equal' mangled-name='drm_connector_atomic_hdr_metadata_equal' filepath='drivers/gpu/drm/drm_connector.c' line='2208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_atomic_hdr_metadata_equal'>
- <parameter type-id='249ef586' name='old_state' filepath='drivers/gpu/drm/drm_connector.c' line='2208' column='1'/>
- <parameter type-id='249ef586' name='new_state' filepath='drivers/gpu/drm/drm_connector.c' line='2209' column='1'/>
+ <function-decl name='drm_connector_atomic_hdr_metadata_equal' mangled-name='drm_connector_atomic_hdr_metadata_equal' filepath='drivers/gpu/drm/drm_connector.c' line='2211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_atomic_hdr_metadata_equal'>
+ <parameter type-id='249ef586' name='old_state' filepath='drivers/gpu/drm/drm_connector.c' line='2211' column='1'/>
+ <parameter type-id='249ef586' name='new_state' filepath='drivers/gpu/drm/drm_connector.c' line='2212' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
<function-decl name='drm_connector_attach_content_protection_property' mangled-name='drm_connector_attach_content_protection_property' filepath='drivers/gpu/drm/drm_hdcp.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_content_protection_property'>
@@ -138344,12 +138747,12 @@
<parameter type-id='b50a4934' name='hdcp_content_type' filepath='drivers/gpu/drm/drm_hdcp.c' line='358' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_connector_attach_content_type_property' mangled-name='drm_connector_attach_content_type_property' filepath='drivers/gpu/drm/drm_connector.c' line='1393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_content_type_property'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1393' column='1'/>
+ <function-decl name='drm_connector_attach_content_type_property' mangled-name='drm_connector_attach_content_type_property' filepath='drivers/gpu/drm/drm_connector.c' line='1396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_content_type_property'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1396' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_connector_attach_dp_subconnector_property' mangled-name='drm_connector_attach_dp_subconnector_property' filepath='drivers/gpu/drm/drm_connector.c' line='1343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_dp_subconnector_property'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1343' column='1'/>
+ <function-decl name='drm_connector_attach_dp_subconnector_property' mangled-name='drm_connector_attach_dp_subconnector_property' filepath='drivers/gpu/drm/drm_connector.c' line='1346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_dp_subconnector_property'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1346' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='drm_connector_attach_edid_property' mangled-name='drm_connector_attach_edid_property' filepath='drivers/gpu/drm/drm_connector.c' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_edid_property'>
@@ -138361,18 +138764,18 @@
<parameter type-id='74d89ebd' name='encoder' filepath='drivers/gpu/drm/drm_connector.c' line='393' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_connector_attach_hdr_output_metadata_property' mangled-name='drm_connector_attach_hdr_output_metadata_property' filepath='drivers/gpu/drm/drm_connector.c' line='2165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_hdr_output_metadata_property'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2165' column='1'/>
+ <function-decl name='drm_connector_attach_hdr_output_metadata_property' mangled-name='drm_connector_attach_hdr_output_metadata_property' filepath='drivers/gpu/drm/drm_connector.c' line='2168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_hdr_output_metadata_property'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2168' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_connector_attach_max_bpc_property' mangled-name='drm_connector_attach_max_bpc_property' filepath='drivers/gpu/drm/drm_connector.c' line='2132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_max_bpc_property'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2132' column='1'/>
- <parameter type-id='95e97e5e' name='min' filepath='drivers/gpu/drm/drm_connector.c' line='2133' column='1'/>
- <parameter type-id='95e97e5e' name='max' filepath='drivers/gpu/drm/drm_connector.c' line='2133' column='1'/>
+ <function-decl name='drm_connector_attach_max_bpc_property' mangled-name='drm_connector_attach_max_bpc_property' filepath='drivers/gpu/drm/drm_connector.c' line='2135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_max_bpc_property'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2135' column='1'/>
+ <parameter type-id='95e97e5e' name='min' filepath='drivers/gpu/drm/drm_connector.c' line='2136' column='1'/>
+ <parameter type-id='95e97e5e' name='max' filepath='drivers/gpu/drm/drm_connector.c' line='2136' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_connector_attach_vrr_capable_property' mangled-name='drm_connector_attach_vrr_capable_property' filepath='drivers/gpu/drm/drm_connector.c' line='1699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_vrr_capable_property'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1700' column='1'/>
+ <function-decl name='drm_connector_attach_vrr_capable_property' mangled-name='drm_connector_attach_vrr_capable_property' filepath='drivers/gpu/drm/drm_connector.c' line='1702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_attach_vrr_capable_property'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1703' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='drm_connector_cleanup' mangled-name='drm_connector_cleanup' filepath='drivers/gpu/drm/drm_connector.c' line='444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_cleanup'>
@@ -138399,49 +138802,49 @@
<parameter type-id='b9af02c3' name='ddc' filepath='drivers/gpu/drm/drm_connector.c' line='347' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_connector_list_iter_begin' mangled-name='drm_connector_list_iter_begin' filepath='drivers/gpu/drm/drm_connector.c' line='660' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_begin'>
- <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='660' column='1'/>
- <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='661' column='1'/>
+ <function-decl name='drm_connector_list_iter_begin' mangled-name='drm_connector_list_iter_begin' filepath='drivers/gpu/drm/drm_connector.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_begin'>
+ <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='663' column='1'/>
+ <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='664' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='drm_connector_list_iter_end' mangled-name='drm_connector_list_iter_end' filepath='drivers/gpu/drm/drm_connector.c' line='735' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_end'>
- <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='735' column='1'/>
+ <function-decl name='drm_connector_list_iter_end' mangled-name='drm_connector_list_iter_end' filepath='drivers/gpu/drm/drm_connector.c' line='738' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_end'>
+ <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='738' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='drm_connector_list_iter_next' mangled-name='drm_connector_list_iter_next' filepath='drivers/gpu/drm/drm_connector.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_next'>
- <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='696' column='1'/>
+ <function-decl name='drm_connector_list_iter_next' mangled-name='drm_connector_list_iter_next' filepath='drivers/gpu/drm/drm_connector.c' line='699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_iter_next'>
+ <parameter type-id='40a902ec' name='iter' filepath='drivers/gpu/drm/drm_connector.c' line='699' column='1'/>
<return type-id='4db02c58'/>
</function-decl>
<function-decl name='drm_connector_list_update' mangled-name='drm_connector_list_update' filepath='drivers/gpu/drm/drm_modes.c' line='1334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_list_update'>
<parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_modes.c' line='1334' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='drm_connector_register' mangled-name='drm_connector_register' filepath='drivers/gpu/drm/drm_connector.c' line='505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_register'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='505' column='1'/>
+ <function-decl name='drm_connector_register' mangled-name='drm_connector_register' filepath='drivers/gpu/drm/drm_connector.c' line='508' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_register'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='508' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_connector_set_panel_orientation' mangled-name='drm_connector_set_panel_orientation' filepath='drivers/gpu/drm/drm_connector.c' line='2263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_panel_orientation'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2264' column='1'/>
- <parameter type-id='59f3d325' name='panel_orientation' filepath='drivers/gpu/drm/drm_connector.c' line='2265' column='1'/>
+ <function-decl name='drm_connector_set_panel_orientation' mangled-name='drm_connector_set_panel_orientation' filepath='drivers/gpu/drm/drm_connector.c' line='2266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_panel_orientation'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2267' column='1'/>
+ <parameter type-id='59f3d325' name='panel_orientation' filepath='drivers/gpu/drm/drm_connector.c' line='2268' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_connector_set_path_property' mangled-name='drm_connector_set_path_property' filepath='drivers/gpu/drm/drm_connector.c' line='1956' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_path_property'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1956' column='1'/>
- <parameter type-id='80f4b756' name='path' filepath='drivers/gpu/drm/drm_connector.c' line='1957' column='1'/>
+ <function-decl name='drm_connector_set_path_property' mangled-name='drm_connector_set_path_property' filepath='drivers/gpu/drm/drm_connector.c' line='1959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_path_property'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1959' column='1'/>
+ <parameter type-id='80f4b756' name='path' filepath='drivers/gpu/drm/drm_connector.c' line='1960' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_connector_set_vrr_capable_property' mangled-name='drm_connector_set_vrr_capable_property' filepath='drivers/gpu/drm/drm_connector.c' line='2233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_vrr_capable_property'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2234' column='1'/>
- <parameter type-id='b50a4934' name='capable' filepath='drivers/gpu/drm/drm_connector.c' line='2234' column='1'/>
+ <function-decl name='drm_connector_set_vrr_capable_property' mangled-name='drm_connector_set_vrr_capable_property' filepath='drivers/gpu/drm/drm_connector.c' line='2236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_set_vrr_capable_property'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2237' column='1'/>
+ <parameter type-id='b50a4934' name='capable' filepath='drivers/gpu/drm/drm_connector.c' line='2237' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='drm_connector_unregister' mangled-name='drm_connector_unregister' filepath='drivers/gpu/drm/drm_connector.c' line='555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_unregister'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='555' column='1'/>
+ <function-decl name='drm_connector_unregister' mangled-name='drm_connector_unregister' filepath='drivers/gpu/drm/drm_connector.c' line='558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_unregister'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='558' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='drm_connector_update_edid_property' mangled-name='drm_connector_update_edid_property' filepath='drivers/gpu/drm/drm_connector.c' line='2031' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_update_edid_property'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2031' column='1'/>
- <parameter type-id='776adf76' name='edid' filepath='drivers/gpu/drm/drm_connector.c' line='2032' column='1'/>
+ <function-decl name='drm_connector_update_edid_property' mangled-name='drm_connector_update_edid_property' filepath='drivers/gpu/drm/drm_connector.c' line='2034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_connector_update_edid_property'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='2034' column='1'/>
+ <parameter type-id='776adf76' name='edid' filepath='drivers/gpu/drm/drm_connector.c' line='2035' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='drm_crtc_accurate_vblank_count' mangled-name='drm_crtc_accurate_vblank_count' filepath='drivers/gpu/drm/drm_vblank.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_crtc_accurate_vblank_count'>
@@ -138646,10 +139049,10 @@
<parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_drv.c' line='933' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='drm_display_info_set_bus_formats' mangled-name='drm_display_info_set_bus_formats' filepath='drivers/gpu/drm/drm_connector.c' line='795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_display_info_set_bus_formats'>
- <parameter type-id='939a8d9a' name='info' filepath='drivers/gpu/drm/drm_connector.c' line='795' column='1'/>
- <parameter type-id='aded214c' name='formats' filepath='drivers/gpu/drm/drm_connector.c' line='796' column='1'/>
- <parameter type-id='f0981eeb' name='num_formats' filepath='drivers/gpu/drm/drm_connector.c' line='797' column='1'/>
+ <function-decl name='drm_display_info_set_bus_formats' mangled-name='drm_display_info_set_bus_formats' filepath='drivers/gpu/drm/drm_connector.c' line='798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_display_info_set_bus_formats'>
+ <parameter type-id='939a8d9a' name='info' filepath='drivers/gpu/drm/drm_connector.c' line='798' column='1'/>
+ <parameter type-id='aded214c' name='formats' filepath='drivers/gpu/drm/drm_connector.c' line='799' column='1'/>
+ <parameter type-id='f0981eeb' name='num_formats' filepath='drivers/gpu/drm/drm_connector.c' line='800' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='drm_display_mode_from_videomode' mangled-name='drm_display_mode_from_videomode' filepath='drivers/gpu/drm/drm_modes.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_display_mode_from_videomode'>
@@ -139338,8 +139741,8 @@
<parameter type-id='2ae08426' name='vma' filepath='drivers/gpu/drm/drm_gem.c' line='968' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='drm_get_connector_status_name' mangled-name='drm_get_connector_status_name' filepath='drivers/gpu/drm/drm_connector.c' line='611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_get_connector_status_name'>
- <parameter type-id='f7b0e1b4' name='status' filepath='drivers/gpu/drm/drm_connector.c' line='611' column='1'/>
+ <function-decl name='drm_get_connector_status_name' mangled-name='drm_get_connector_status_name' filepath='drivers/gpu/drm/drm_connector.c' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_get_connector_status_name'>
+ <parameter type-id='f7b0e1b4' name='status' filepath='drivers/gpu/drm/drm_connector.c' line='614' column='1'/>
<return type-id='80f4b756'/>
</function-decl>
<function-decl name='drm_get_connector_type_name' mangled-name='drm_get_connector_type_name' filepath='drivers/gpu/drm/drm_connector.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_get_connector_type_name'>
@@ -139563,21 +139966,21 @@
<parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_modes.c' line='70' column='1'/>
<return type-id='11e02f83'/>
</function-decl>
- <function-decl name='drm_mode_create_dp_colorspace_property' mangled-name='drm_mode_create_dp_colorspace_property' filepath='drivers/gpu/drm/drm_connector.c' line='1873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_dp_colorspace_property'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1873' column='1'/>
+ <function-decl name='drm_mode_create_dp_colorspace_property' mangled-name='drm_mode_create_dp_colorspace_property' filepath='drivers/gpu/drm/drm_connector.c' line='1876' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_dp_colorspace_property'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1876' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_mode_create_hdmi_colorspace_property' mangled-name='drm_mode_create_hdmi_colorspace_property' filepath='drivers/gpu/drm/drm_connector.c' line='1844' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_hdmi_colorspace_property'>
- <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1844' column='1'/>
+ <function-decl name='drm_mode_create_hdmi_colorspace_property' mangled-name='drm_mode_create_hdmi_colorspace_property' filepath='drivers/gpu/drm/drm_connector.c' line='1847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_hdmi_colorspace_property'>
+ <parameter type-id='4db02c58' name='connector' filepath='drivers/gpu/drm/drm_connector.c' line='1847' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_mode_create_scaling_mode_property' mangled-name='drm_mode_create_scaling_mode_property' filepath='drivers/gpu/drm/drm_connector.c' line='1608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_scaling_mode_property'>
- <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='1608' column='1'/>
+ <function-decl name='drm_mode_create_scaling_mode_property' mangled-name='drm_mode_create_scaling_mode_property' filepath='drivers/gpu/drm/drm_connector.c' line='1611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_scaling_mode_property'>
+ <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='1611' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='drm_mode_create_tile_group' mangled-name='drm_mode_create_tile_group' filepath='drivers/gpu/drm/drm_connector.c' line='2628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_tile_group'>
- <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='2628' column='1'/>
- <parameter type-id='80f4b756' name='topology' filepath='drivers/gpu/drm/drm_connector.c' line='2629' column='1'/>
+ <function-decl name='drm_mode_create_tile_group' mangled-name='drm_mode_create_tile_group' filepath='drivers/gpu/drm/drm_connector.c' line='2631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_create_tile_group'>
+ <parameter type-id='8898134d' name='dev' filepath='drivers/gpu/drm/drm_connector.c' line='2631' column='1'/>
+ <parameter type-id='80f4b756' name='topology' filepath='drivers/gpu/drm/drm_connector.c' line='2632' column='1'/>
<return type-id='c6c44b9f'/>
</function-decl>
<function-decl name='drm_mode_crtc_set_gamma_size' mangled-name='drm_mode_crtc_set_gamma_size' filepath='drivers/gpu/drm/drm_color_mgmt.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='drm_mode_crtc_set_gamma_size'>
@@ -140365,47 +140768,47 @@
<parameter type-id='19c2251e' name='val' filepath='drivers/pci/controller/dwc/pcie-designware.c' line='163' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='edac_device_add_device' mangled-name='edac_device_add_device' filepath='drivers/edac/edac_device.c' line='448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_add_device'>
- <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='448' column='1'/>
+ <function-decl name='edac_device_add_device' mangled-name='edac_device_add_device' filepath='drivers/edac/edac_device.c' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_add_device'>
+ <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='450' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='edac_device_alloc_ctl_info' mangled-name='edac_device_alloc_ctl_info' filepath='drivers/edac/edac_device.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_alloc_ctl_info'>
- <parameter type-id='f0981eeb' name='sz_private' filepath='drivers/edac/edac_device.c' line='51' column='1'/>
- <parameter type-id='26a90f95' name='edac_device_name' filepath='drivers/edac/edac_device.c' line='52' column='1'/>
- <parameter type-id='f0981eeb' name='nr_instances' filepath='drivers/edac/edac_device.c' line='52' column='1'/>
- <parameter type-id='26a90f95' name='edac_block_name' filepath='drivers/edac/edac_device.c' line='53' column='1'/>
- <parameter type-id='f0981eeb' name='nr_blocks' filepath='drivers/edac/edac_device.c' line='53' column='1'/>
- <parameter type-id='f0981eeb' name='offset_value' filepath='drivers/edac/edac_device.c' line='54' column='1'/>
- <parameter type-id='b52eac2e' name='attrib_spec' filepath='drivers/edac/edac_device.c' line='55' column='1'/>
- <parameter type-id='f0981eeb' name='nr_attrib' filepath='drivers/edac/edac_device.c' line='55' column='1'/>
- <parameter type-id='95e97e5e' name='device_index' filepath='drivers/edac/edac_device.c' line='56' column='1'/>
+ <function-decl name='edac_device_alloc_ctl_info' mangled-name='edac_device_alloc_ctl_info' filepath='drivers/edac/edac_device.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_alloc_ctl_info'>
+ <parameter type-id='f0981eeb' name='sz_private' filepath='drivers/edac/edac_device.c' line='54' column='1'/>
+ <parameter type-id='26a90f95' name='edac_device_name' filepath='drivers/edac/edac_device.c' line='55' column='1'/>
+ <parameter type-id='f0981eeb' name='nr_instances' filepath='drivers/edac/edac_device.c' line='55' column='1'/>
+ <parameter type-id='26a90f95' name='edac_block_name' filepath='drivers/edac/edac_device.c' line='56' column='1'/>
+ <parameter type-id='f0981eeb' name='nr_blocks' filepath='drivers/edac/edac_device.c' line='56' column='1'/>
+ <parameter type-id='f0981eeb' name='offset_value' filepath='drivers/edac/edac_device.c' line='57' column='1'/>
+ <parameter type-id='b52eac2e' name='attrib_spec' filepath='drivers/edac/edac_device.c' line='58' column='1'/>
+ <parameter type-id='f0981eeb' name='nr_attrib' filepath='drivers/edac/edac_device.c' line='58' column='1'/>
+ <parameter type-id='95e97e5e' name='device_index' filepath='drivers/edac/edac_device.c' line='59' column='1'/>
<return type-id='b7d8b860'/>
</function-decl>
- <function-decl name='edac_device_alloc_index' mangled-name='edac_device_alloc_index' filepath='drivers/edac/edac_device.c' line='440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_alloc_index'>
+ <function-decl name='edac_device_alloc_index' mangled-name='edac_device_alloc_index' filepath='drivers/edac/edac_device.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_alloc_index'>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='edac_device_del_device' mangled-name='edac_device_del_device' filepath='drivers/edac/edac_device.c' line='504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_del_device'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/edac/edac_device.c' line='504' column='1'/>
+ <function-decl name='edac_device_del_device' mangled-name='edac_device_del_device' filepath='drivers/edac/edac_device.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_del_device'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/edac/edac_device.c' line='502' column='1'/>
<return type-id='b7d8b860'/>
</function-decl>
- <function-decl name='edac_device_free_ctl_info' mangled-name='edac_device_free_ctl_info' filepath='drivers/edac/edac_device.c' line='229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_free_ctl_info'>
- <parameter type-id='b7d8b860' name='ctl_info' filepath='drivers/edac/edac_device.c' line='229' column='1'/>
+ <function-decl name='edac_device_free_ctl_info' mangled-name='edac_device_free_ctl_info' filepath='drivers/edac/edac_device.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_free_ctl_info'>
+ <parameter type-id='b7d8b860' name='ctl_info' filepath='drivers/edac/edac_device.c' line='232' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='edac_device_handle_ce_count' mangled-name='edac_device_handle_ce_count' filepath='drivers/edac/edac_device.c' line='558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_handle_ce_count'>
- <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='558' column='1'/>
- <parameter type-id='f0981eeb' name='count' filepath='drivers/edac/edac_device.c' line='559' column='1'/>
- <parameter type-id='95e97e5e' name='inst_nr' filepath='drivers/edac/edac_device.c' line='559' column='1'/>
- <parameter type-id='95e97e5e' name='block_nr' filepath='drivers/edac/edac_device.c' line='559' column='1'/>
- <parameter type-id='80f4b756' name='msg' filepath='drivers/edac/edac_device.c' line='560' column='1'/>
+ <function-decl name='edac_device_handle_ce_count' mangled-name='edac_device_handle_ce_count' filepath='drivers/edac/edac_device.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_handle_ce_count'>
+ <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='556' column='1'/>
+ <parameter type-id='f0981eeb' name='count' filepath='drivers/edac/edac_device.c' line='557' column='1'/>
+ <parameter type-id='95e97e5e' name='inst_nr' filepath='drivers/edac/edac_device.c' line='557' column='1'/>
+ <parameter type-id='95e97e5e' name='block_nr' filepath='drivers/edac/edac_device.c' line='557' column='1'/>
+ <parameter type-id='80f4b756' name='msg' filepath='drivers/edac/edac_device.c' line='558' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='edac_device_handle_ue_count' mangled-name='edac_device_handle_ue_count' filepath='drivers/edac/edac_device.c' line='604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_handle_ue_count'>
- <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='604' column='1'/>
- <parameter type-id='f0981eeb' name='count' filepath='drivers/edac/edac_device.c' line='605' column='1'/>
- <parameter type-id='95e97e5e' name='inst_nr' filepath='drivers/edac/edac_device.c' line='605' column='1'/>
- <parameter type-id='95e97e5e' name='block_nr' filepath='drivers/edac/edac_device.c' line='605' column='1'/>
- <parameter type-id='80f4b756' name='msg' filepath='drivers/edac/edac_device.c' line='606' column='1'/>
+ <function-decl name='edac_device_handle_ue_count' mangled-name='edac_device_handle_ue_count' filepath='drivers/edac/edac_device.c' line='602' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='edac_device_handle_ue_count'>
+ <parameter type-id='b7d8b860' name='edac_dev' filepath='drivers/edac/edac_device.c' line='602' column='1'/>
+ <parameter type-id='f0981eeb' name='count' filepath='drivers/edac/edac_device.c' line='603' column='1'/>
+ <parameter type-id='95e97e5e' name='inst_nr' filepath='drivers/edac/edac_device.c' line='603' column='1'/>
+ <parameter type-id='95e97e5e' name='block_nr' filepath='drivers/edac/edac_device.c' line='603' column='1'/>
+ <parameter type-id='80f4b756' name='msg' filepath='drivers/edac/edac_device.c' line='604' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='ehci_handshake' mangled-name='ehci_handshake' filepath='drivers/usb/host/ehci-hcd.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ehci_handshake'>
@@ -140668,27 +141071,27 @@
<parameter type-id='3275e929' name='event' filepath='kernel/trace/trace_events_trigger.c' line='58' column='1'/>
<return type-id='21b4096c'/>
</function-decl>
- <function-decl name='eventfd_ctx_fdget' mangled-name='eventfd_ctx_fdget' filepath='fs/eventfd.c' line='375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_fdget'>
- <parameter type-id='95e97e5e' name='fd' filepath='fs/eventfd.c' line='375' column='1'/>
+ <function-decl name='eventfd_ctx_fdget' mangled-name='eventfd_ctx_fdget' filepath='fs/eventfd.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_fdget'>
+ <parameter type-id='95e97e5e' name='fd' filepath='fs/eventfd.c' line='380' column='1'/>
<return type-id='71f2e203'/>
</function-decl>
- <function-decl name='eventfd_ctx_fileget' mangled-name='eventfd_ctx_fileget' filepath='fs/eventfd.c' line='396' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_fileget'>
- <parameter type-id='77e79a4b' name='file' filepath='fs/eventfd.c' line='396' column='1'/>
+ <function-decl name='eventfd_ctx_fileget' mangled-name='eventfd_ctx_fileget' filepath='fs/eventfd.c' line='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_fileget'>
+ <parameter type-id='77e79a4b' name='file' filepath='fs/eventfd.c' line='401' column='1'/>
<return type-id='71f2e203'/>
</function-decl>
- <function-decl name='eventfd_ctx_put' mangled-name='eventfd_ctx_put' filepath='fs/eventfd.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_put'>
- <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='110' column='1'/>
+ <function-decl name='eventfd_ctx_put' mangled-name='eventfd_ctx_put' filepath='fs/eventfd.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_put'>
+ <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='115' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='eventfd_ctx_remove_wait_queue' mangled-name='eventfd_ctx_remove_wait_queue' filepath='fs/eventfd.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_remove_wait_queue'>
- <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='205' column='1'/>
- <parameter type-id='ba9aa326' name='wait' filepath='fs/eventfd.c' line='205' column='1'/>
- <parameter type-id='30dcd536' name='cnt' filepath='fs/eventfd.c' line='206' column='1'/>
+ <function-decl name='eventfd_ctx_remove_wait_queue' mangled-name='eventfd_ctx_remove_wait_queue' filepath='fs/eventfd.c' line='210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_ctx_remove_wait_queue'>
+ <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='210' column='1'/>
+ <parameter type-id='ba9aa326' name='wait' filepath='fs/eventfd.c' line='210' column='1'/>
+ <parameter type-id='30dcd536' name='cnt' filepath='fs/eventfd.c' line='211' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='eventfd_signal' mangled-name='eventfd_signal' filepath='fs/eventfd.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_signal'>
- <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='60' column='1'/>
- <parameter type-id='d3130597' name='n' filepath='fs/eventfd.c' line='60' column='1'/>
+ <function-decl name='eventfd_signal' mangled-name='eventfd_signal' filepath='fs/eventfd.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='eventfd_signal'>
+ <parameter type-id='71f2e203' name='ctx' filepath='fs/eventfd.c' line='88' column='1'/>
+ <parameter type-id='d3130597' name='n' filepath='fs/eventfd.c' line='88' column='1'/>
<return type-id='d3130597'/>
</function-decl>
<function-decl name='evict_inodes' mangled-name='evict_inodes' filepath='fs/inode.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='evict_inodes'>
@@ -140930,6 +141333,11 @@
<parameter type-id='eaa32e2f' name='data' filepath='fs/inode.c' line='1442' column='1'/>
<return type-id='7e666abe'/>
</function-decl>
+ <function-decl name='find_iova' mangled-name='find_iova' filepath='drivers/iommu/iova.c' line='524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_iova'>
+ <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='524' column='1'/>
+ <parameter type-id='7359adad' name='pfn' filepath='drivers/iommu/iova.c' line='524' column='1'/>
+ <return type-id='b2ea0a72'/>
+ </function-decl>
<function-decl name='find_pid_ns' mangled-name='find_pid_ns' filepath='kernel/pid.c' line='309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='find_pid_ns'>
<parameter type-id='95e97e5e' name='nr' filepath='kernel/pid.c' line='309' column='1'/>
<parameter type-id='b816e1d0' name='ns' filepath='kernel/pid.c' line='309' column='1'/>
@@ -141022,10 +141430,10 @@
<parameter type-id='242e3d19' name='wq' filepath='kernel/workqueue.c' line='2821' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='follow_pfn' mangled-name='follow_pfn' filepath='mm/memory.c' line='5404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='follow_pfn'>
- <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='5404' column='1'/>
- <parameter type-id='7359adad' name='address' filepath='mm/memory.c' line='5404' column='1'/>
- <parameter type-id='1d2c2b85' name='pfn' filepath='mm/memory.c' line='5405' column='1'/>
+ <function-decl name='follow_pfn' mangled-name='follow_pfn' filepath='mm/memory.c' line='5417' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='follow_pfn'>
+ <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='5417' column='1'/>
+ <parameter type-id='7359adad' name='address' filepath='mm/memory.c' line='5417' column='1'/>
+ <parameter type-id='1d2c2b85' name='pfn' filepath='mm/memory.c' line='5418' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<var-decl name='font_vga_8x16' type-id='d2d06e23' mangled-name='font_vga_8x16' visibility='default' filepath='lib/fonts/font_8x16.c' line='4625' column='1' elf-symbol-id='font_vga_8x16'/>
@@ -141063,9 +141471,9 @@
<parameter type-id='68a2d05b' name='dev' filepath='drivers/net/can/dev/dev.c' line='293' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='free_contig_range' mangled-name='free_contig_range' filepath='mm/page_alloc.c' line='9477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_contig_range'>
- <parameter type-id='7359adad' name='pfn' filepath='mm/page_alloc.c' line='9477' column='1'/>
- <parameter type-id='7359adad' name='nr_pages' filepath='mm/page_alloc.c' line='9477' column='1'/>
+ <function-decl name='free_contig_range' mangled-name='free_contig_range' filepath='mm/page_alloc.c' line='9480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_contig_range'>
+ <parameter type-id='7359adad' name='pfn' filepath='mm/page_alloc.c' line='9480' column='1'/>
+ <parameter type-id='7359adad' name='nr_pages' filepath='mm/page_alloc.c' line='9480' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='free_io_pgtable_ops' mangled-name='free_io_pgtable_ops' filepath='drivers/iommu/io-pgtable.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_io_pgtable_ops'>
@@ -141081,14 +141489,14 @@
<parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='10924' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='free_pages' mangled-name='free_pages' filepath='mm/page_alloc.c' line='5649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_pages'>
- <parameter type-id='7359adad' name='addr' filepath='mm/page_alloc.c' line='5649' column='1'/>
- <parameter type-id='f0981eeb' name='order' filepath='mm/page_alloc.c' line='5649' column='1'/>
+ <function-decl name='free_pages' mangled-name='free_pages' filepath='mm/page_alloc.c' line='5652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_pages'>
+ <parameter type-id='7359adad' name='addr' filepath='mm/page_alloc.c' line='5652' column='1'/>
+ <parameter type-id='f0981eeb' name='order' filepath='mm/page_alloc.c' line='5652' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='free_pages_exact' mangled-name='free_pages_exact' filepath='mm/page_alloc.c' line='5862' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_pages_exact'>
- <parameter type-id='eaa32e2f' name='virt' filepath='mm/page_alloc.c' line='5862' column='1'/>
- <parameter type-id='b59d7dce' name='size' filepath='mm/page_alloc.c' line='5862' column='1'/>
+ <function-decl name='free_pages_exact' mangled-name='free_pages_exact' filepath='mm/page_alloc.c' line='5865' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_pages_exact'>
+ <parameter type-id='eaa32e2f' name='virt' filepath='mm/page_alloc.c' line='5865' column='1'/>
+ <parameter type-id='b59d7dce' name='size' filepath='mm/page_alloc.c' line='5865' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='free_percpu' mangled-name='free_percpu' filepath='mm/percpu.c' line='2264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_percpu'>
@@ -141424,8 +141832,8 @@
<parameter type-id='b88dd945' name='bdev' filepath='block/bdev.c' line='212' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ftrace_dump' mangled-name='ftrace_dump' filepath='kernel/trace/trace.c' line='9883' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ftrace_dump'>
- <parameter type-id='9be0e7e4' name='oops_dump_mode' filepath='kernel/trace/trace.c' line='9883' column='1'/>
+ <function-decl name='ftrace_dump' mangled-name='ftrace_dump' filepath='kernel/trace/trace.c' line='9896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ftrace_dump'>
+ <parameter type-id='9be0e7e4' name='oops_dump_mode' filepath='kernel/trace/trace.c' line='9896' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='full_name_hash' mangled-name='full_name_hash' filepath='fs/namei.c' line='2087' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='full_name_hash'>
@@ -141434,11 +141842,11 @@
<parameter type-id='f0981eeb' name='len' filepath='fs/namei.c' line='2087' column='1'/>
<return type-id='f0981eeb'/>
</function-decl>
- <function-decl name='fwnode_connection_find_match' mangled-name='fwnode_connection_find_match' filepath='drivers/base/property.c' line='1342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_connection_find_match'>
- <parameter type-id='4a935625' name='fwnode' filepath='drivers/base/property.c' line='1342' column='1'/>
- <parameter type-id='80f4b756' name='con_id' filepath='drivers/base/property.c' line='1343' column='1'/>
- <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/property.c' line='1343' column='1'/>
- <parameter type-id='2517d133' name='match' filepath='drivers/base/property.c' line='1344' column='1'/>
+ <function-decl name='fwnode_connection_find_match' mangled-name='fwnode_connection_find_match' filepath='drivers/base/property.c' line='1348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_connection_find_match'>
+ <parameter type-id='4a935625' name='fwnode' filepath='drivers/base/property.c' line='1348' column='1'/>
+ <parameter type-id='80f4b756' name='con_id' filepath='drivers/base/property.c' line='1349' column='1'/>
+ <parameter type-id='eaa32e2f' name='data' filepath='drivers/base/property.c' line='1349' column='1'/>
+ <parameter type-id='2517d133' name='match' filepath='drivers/base/property.c' line='1350' column='1'/>
<return type-id='eaa32e2f'/>
</function-decl>
<function-decl name='fwnode_device_is_available' mangled-name='fwnode_device_is_available' filepath='drivers/base/property.c' line='858' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_device_is_available'>
@@ -141477,21 +141885,21 @@
<parameter type-id='4a935625' name='prev' filepath='drivers/base/property.c' line='1056' column='1'/>
<return type-id='4a935625'/>
</function-decl>
- <function-decl name='fwnode_graph_get_port_parent' mangled-name='fwnode_graph_get_port_parent' filepath='drivers/base/property.c' line='1088' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_port_parent'>
- <parameter type-id='7837cd88' name='endpoint' filepath='drivers/base/property.c' line='1088' column='1'/>
+ <function-decl name='fwnode_graph_get_port_parent' mangled-name='fwnode_graph_get_port_parent' filepath='drivers/base/property.c' line='1094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_port_parent'>
+ <parameter type-id='7837cd88' name='endpoint' filepath='drivers/base/property.c' line='1094' column='1'/>
<return type-id='4a935625'/>
</function-decl>
- <function-decl name='fwnode_graph_get_remote_endpoint' mangled-name='fwnode_graph_get_remote_endpoint' filepath='drivers/base/property.c' line='1141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_remote_endpoint'>
- <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1141' column='1'/>
+ <function-decl name='fwnode_graph_get_remote_endpoint' mangled-name='fwnode_graph_get_remote_endpoint' filepath='drivers/base/property.c' line='1147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_remote_endpoint'>
+ <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1147' column='1'/>
<return type-id='4a935625'/>
</function-decl>
- <function-decl name='fwnode_graph_get_remote_port_parent' mangled-name='fwnode_graph_get_remote_port_parent' filepath='drivers/base/property.c' line='1108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_remote_port_parent'>
- <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1108' column='1'/>
+ <function-decl name='fwnode_graph_get_remote_port_parent' mangled-name='fwnode_graph_get_remote_port_parent' filepath='drivers/base/property.c' line='1114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_get_remote_port_parent'>
+ <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1114' column='1'/>
<return type-id='4a935625'/>
</function-decl>
- <function-decl name='fwnode_graph_parse_endpoint' mangled-name='fwnode_graph_parse_endpoint' filepath='drivers/base/property.c' line='1269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_parse_endpoint'>
- <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1269' column='1'/>
- <parameter type-id='41b1c13c' name='endpoint' filepath='drivers/base/property.c' line='1270' column='1'/>
+ <function-decl name='fwnode_graph_parse_endpoint' mangled-name='fwnode_graph_parse_endpoint' filepath='drivers/base/property.c' line='1275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_graph_parse_endpoint'>
+ <parameter type-id='7837cd88' name='fwnode' filepath='drivers/base/property.c' line='1275' column='1'/>
+ <parameter type-id='41b1c13c' name='endpoint' filepath='drivers/base/property.c' line='1276' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='fwnode_handle_get' mangled-name='fwnode_handle_get' filepath='drivers/base/property.c' line='828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='fwnode_handle_get'>
@@ -141712,8 +142120,8 @@
<parameter type-id='69bf7bee' name='size' filepath='fs/buffer.c' line='2351' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='generic_device_group' mangled-name='generic_device_group' filepath='drivers/iommu/iommu.c' line='1438' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_device_group'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1438' column='1'/>
+ <function-decl name='generic_device_group' mangled-name='generic_device_group' filepath='drivers/iommu/iommu.c' line='1454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_device_group'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1454' column='1'/>
<return type-id='0b19fc54'/>
</function-decl>
<function-decl name='generic_error_remove_page' mangled-name='generic_error_remove_page' filepath='mm/truncate.c' line='226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_error_remove_page'>
@@ -141813,9 +142221,9 @@
<parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/irqdesc.c' line='659' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='generic_iommu_put_resv_regions' mangled-name='generic_iommu_put_resv_regions' filepath='drivers/iommu/iommu.c' line='2832' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_iommu_put_resv_regions'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2832' column='1'/>
- <parameter type-id='e84b031a' name='list' filepath='drivers/iommu/iommu.c' line='2832' column='1'/>
+ <function-decl name='generic_iommu_put_resv_regions' mangled-name='generic_iommu_put_resv_regions' filepath='drivers/iommu/iommu.c' line='2848' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_iommu_put_resv_regions'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2848' column='1'/>
+ <parameter type-id='e84b031a' name='list' filepath='drivers/iommu/iommu.c' line='2848' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='generic_key_instantiate' mangled-name='generic_key_instantiate' filepath='security/keys/key.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='generic_key_instantiate'>
@@ -142133,6 +142541,10 @@
<parameter type-id='eaa32e2f' name='private' filepath='mm/slub.c' line='696' column='1'/>
<return type-id='7359adad'/>
</function-decl>
+ <function-decl name='get_fs_type' mangled-name='get_fs_type' filepath='fs/filesystems.c' line='273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_fs_type'>
+ <parameter type-id='80f4b756' name='name' filepath='fs/filesystems.c' line='273' column='1'/>
+ <return type-id='21e53d44'/>
+ </function-decl>
<function-decl name='get_governor_parent_kobj' mangled-name='get_governor_parent_kobj' filepath='drivers/cpufreq/cpufreq.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_governor_parent_kobj'>
<parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='117' column='1'/>
<return type-id='d30bdc51'/>
@@ -142152,6 +142564,9 @@
<parameter type-id='587f89d2' name='pid' filepath='net/core/net_namespace.c' line='681' column='1'/>
<return type-id='a2bff676'/>
</function-decl>
+ <function-decl name='get_next_ino' mangled-name='get_next_ino' filepath='fs/inode.c' line='901' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_next_ino'>
+ <return type-id='f0981eeb'/>
+ </function-decl>
<function-decl name='get_option' mangled-name='get_option' filepath='lib/cmdline.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_option'>
<parameter type-id='9b23c9ad' name='str' filepath='lib/cmdline.c' line='56' column='1'/>
<parameter type-id='7292109c' name='pint' filepath='lib/cmdline.c' line='56' column='1'/>
@@ -142231,6 +142646,11 @@
<parameter type-id='30341fa1' name='fill_super' filepath='fs/super.c' line='1230' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='get_tree_single' mangled-name='get_tree_single' filepath='fs/super.c' line='1175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_tree_single'>
+ <parameter type-id='5760dcb0' name='fc' filepath='fs/super.c' line='1175' column='1'/>
+ <parameter type-id='30341fa1' name='fill_super' filepath='fs/super.c' line='1176' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='get_unmapped_area' mangled-name='get_unmapped_area' filepath='mm/mmap.c' line='2239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_unmapped_area'>
<parameter type-id='77e79a4b' name='file' filepath='mm/mmap.c' line='2239' column='1'/>
<parameter type-id='7359adad' name='addr' filepath='mm/mmap.c' line='2239' column='1'/>
@@ -142399,26 +142819,26 @@
<parameter type-id='80f4b756' name='str' filepath='lib/glob.c' line='40' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='gov_attr_set_get' mangled-name='gov_attr_set_get' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_get'>
- <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='57' column='1'/>
- <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='57' column='1'/>
+ <function-decl name='gov_attr_set_get' mangled-name='gov_attr_set_get' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_get'>
+ <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='52' column='1'/>
+ <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='52' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='gov_attr_set_init' mangled-name='gov_attr_set_init' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_init'>
- <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='48' column='1'/>
- <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='48' column='1'/>
+ <function-decl name='gov_attr_set_init' mangled-name='gov_attr_set_init' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_init'>
+ <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='43' column='1'/>
+ <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='43' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='gov_attr_set_put' mangled-name='gov_attr_set_put' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_put'>
- <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='66' column='1'/>
- <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='66' column='1'/>
+ <function-decl name='gov_attr_set_put' mangled-name='gov_attr_set_put' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='61' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_attr_set_put'>
+ <parameter type-id='902fed1a' name='attr_set' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='61' column='1'/>
+ <parameter type-id='e84b031a' name='list_node' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='61' column='1'/>
<return type-id='f0981eeb'/>
</function-decl>
<function-decl name='gov_update_cpu_data' mangled-name='gov_update_cpu_data' filepath='drivers/cpufreq/cpufreq_governor.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gov_update_cpu_data'>
<parameter type-id='280461d5' name='dbs_data' filepath='drivers/cpufreq/cpufreq_governor.c' line='95' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <var-decl name='governor_sysfs_ops' type-id='0f840455' mangled-name='governor_sysfs_ops' visibility='default' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='42' column='1' elf-symbol-id='governor_sysfs_ops'/>
+ <var-decl name='governor_sysfs_ops' type-id='0f840455' mangled-name='governor_sysfs_ops' visibility='default' filepath='drivers/cpufreq/cpufreq_governor_attr_set.c' line='37' column='1' elf-symbol-id='governor_sysfs_ops'/>
<function-decl name='gpio_free' mangled-name='gpio_free' filepath='drivers/gpio/gpiolib-legacy.c' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gpio_free'>
<parameter type-id='f0981eeb' name='gpio' filepath='drivers/gpio/gpiolib-legacy.c' line='9' column='1'/>
<return type-id='48b5725f'/>
@@ -142657,40 +143077,40 @@
<parameter type-id='0fbf3cfd' name='skb' filepath='net/core/gro_cells.c' line='12' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='gs_alloc_req' mangled-name='gs_alloc_req' filepath='drivers/usb/gadget/function/u_serial.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gs_alloc_req'>
- <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/function/u_serial.c' line='162' column='1'/>
- <parameter type-id='f0981eeb' name='len' filepath='drivers/usb/gadget/function/u_serial.c' line='162' column='1'/>
- <parameter type-id='3eb7c31c' name='kmalloc_flags' filepath='drivers/usb/gadget/function/u_serial.c' line='162' column='1'/>
+ <function-decl name='gs_alloc_req' mangled-name='gs_alloc_req' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gs_alloc_req'>
+ <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1'/>
+ <parameter type-id='f0981eeb' name='len' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1'/>
+ <parameter type-id='3eb7c31c' name='kmalloc_flags' filepath='drivers/usb/gadget/function/u_serial.c' line='165' column='1'/>
<return type-id='1a494567'/>
</function-decl>
- <function-decl name='gs_free_req' mangled-name='gs_free_req' filepath='drivers/usb/gadget/function/u_serial.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gs_free_req'>
- <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/function/u_serial.c' line='186' column='1'/>
- <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/function/u_serial.c' line='186' column='1'/>
+ <function-decl name='gs_free_req' mangled-name='gs_free_req' filepath='drivers/usb/gadget/function/u_serial.c' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gs_free_req'>
+ <parameter type-id='63a08bf7' name='ep' filepath='drivers/usb/gadget/function/u_serial.c' line='189' column='1'/>
+ <parameter type-id='1a494567' name='req' filepath='drivers/usb/gadget/function/u_serial.c' line='189' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='gserial_alloc_line' mangled-name='gserial_alloc_line' filepath='drivers/usb/gadget/function/u_serial.c' line='1261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_alloc_line'>
- <parameter type-id='cf536864' name='line_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1261' column='1'/>
+ <function-decl name='gserial_alloc_line' mangled-name='gserial_alloc_line' filepath='drivers/usb/gadget/function/u_serial.c' line='1264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_alloc_line'>
+ <parameter type-id='cf536864' name='line_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1264' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='gserial_connect' mangled-name='gserial_connect' filepath='drivers/usb/gadget/function/u_serial.c' line='1293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_connect'>
- <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1293' column='1'/>
- <parameter type-id='f9b06939' name='port_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1293' column='1'/>
+ <function-decl name='gserial_connect' mangled-name='gserial_connect' filepath='drivers/usb/gadget/function/u_serial.c' line='1296' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_connect'>
+ <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1296' column='1'/>
+ <parameter type-id='f9b06939' name='port_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1296' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='gserial_disconnect' mangled-name='gserial_disconnect' filepath='drivers/usb/gadget/function/u_serial.c' line='1369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_disconnect'>
- <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1369' column='1'/>
+ <function-decl name='gserial_disconnect' mangled-name='gserial_disconnect' filepath='drivers/usb/gadget/function/u_serial.c' line='1372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_disconnect'>
+ <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1372' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='gserial_free_line' mangled-name='gserial_free_line' filepath='drivers/usb/gadget/function/u_serial.c' line='1196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_free_line'>
- <parameter type-id='002ac4a6' name='port_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1196' column='1'/>
+ <function-decl name='gserial_free_line' mangled-name='gserial_free_line' filepath='drivers/usb/gadget/function/u_serial.c' line='1199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_free_line'>
+ <parameter type-id='002ac4a6' name='port_num' filepath='drivers/usb/gadget/function/u_serial.c' line='1199' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='gserial_resume' mangled-name='gserial_resume' filepath='drivers/usb/gadget/function/u_serial.c' line='1425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_resume'>
- <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1425' column='1'/>
+ <function-decl name='gserial_resume' mangled-name='gserial_resume' filepath='drivers/usb/gadget/function/u_serial.c' line='1431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_resume'>
+ <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1431' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='gserial_suspend' mangled-name='gserial_suspend' filepath='drivers/usb/gadget/function/u_serial.c' line='1414' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_suspend'>
- <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1414' column='1'/>
+ <function-decl name='gserial_suspend' mangled-name='gserial_suspend' filepath='drivers/usb/gadget/function/u_serial.c' line='1420' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gserial_suspend'>
+ <parameter type-id='3921c1a0' name='gser' filepath='drivers/usb/gadget/function/u_serial.c' line='1420' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='guid_gen' mangled-name='guid_gen' filepath='lib/uuid.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='guid_gen'>
@@ -142737,38 +143157,38 @@
<function-decl name='have_governor_per_policy' mangled-name='have_governor_per_policy' filepath='drivers/cpufreq/cpufreq.c' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='have_governor_per_policy'>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='hci_alloc_dev_priv' mangled-name='hci_alloc_dev_priv' filepath='net/bluetooth/hci_core.c' line='3762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_alloc_dev_priv'>
- <parameter type-id='95e97e5e' name='sizeof_priv' filepath='net/bluetooth/hci_core.c' line='3762' column='1'/>
+ <function-decl name='hci_alloc_dev_priv' mangled-name='hci_alloc_dev_priv' filepath='net/bluetooth/hci_core.c' line='3763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_alloc_dev_priv'>
+ <parameter type-id='95e97e5e' name='sizeof_priv' filepath='net/bluetooth/hci_core.c' line='3763' column='1'/>
<return type-id='9ad862e7'/>
</function-decl>
- <function-decl name='hci_cmd_sync' mangled-name='hci_cmd_sync' filepath='net/bluetooth/hci_core.c' line='4330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_cmd_sync'>
- <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4330' column='1'/>
- <parameter type-id='1dc6a898' name='opcode' filepath='net/bluetooth/hci_core.c' line='4330' column='1'/>
- <parameter type-id='19c2251e' name='plen' filepath='net/bluetooth/hci_core.c' line='4330' column='1'/>
- <parameter type-id='eaa32e2f' name='param' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
- <parameter type-id='19c2251e' name='timeout' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
+ <function-decl name='hci_cmd_sync' mangled-name='hci_cmd_sync' filepath='net/bluetooth/hci_core.c' line='4331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_cmd_sync'>
+ <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
+ <parameter type-id='1dc6a898' name='opcode' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
+ <parameter type-id='19c2251e' name='plen' filepath='net/bluetooth/hci_core.c' line='4331' column='1'/>
+ <parameter type-id='eaa32e2f' name='param' filepath='net/bluetooth/hci_core.c' line='4332' column='1'/>
+ <parameter type-id='19c2251e' name='timeout' filepath='net/bluetooth/hci_core.c' line='4332' column='1'/>
<return type-id='0fbf3cfd'/>
</function-decl>
- <function-decl name='hci_free_dev' mangled-name='hci_free_dev' filepath='net/bluetooth/hci_core.c' line='3890' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_free_dev'>
- <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='3890' column='1'/>
+ <function-decl name='hci_free_dev' mangled-name='hci_free_dev' filepath='net/bluetooth/hci_core.c' line='3891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_free_dev'>
+ <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='3891' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='hci_recv_diag' mangled-name='hci_recv_diag' filepath='net/bluetooth/hci_core.c' line='4159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_recv_diag'>
- <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4159' column='1'/>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/bluetooth/hci_core.c' line='4159' column='1'/>
+ <function-decl name='hci_recv_diag' mangled-name='hci_recv_diag' filepath='net/bluetooth/hci_core.c' line='4160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_recv_diag'>
+ <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4160' column='1'/>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/bluetooth/hci_core.c' line='4160' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='hci_recv_frame' mangled-name='hci_recv_frame' filepath='net/bluetooth/hci_core.c' line='4129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_recv_frame'>
- <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4129' column='1'/>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/bluetooth/hci_core.c' line='4129' column='1'/>
+ <function-decl name='hci_recv_frame' mangled-name='hci_recv_frame' filepath='net/bluetooth/hci_core.c' line='4130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_recv_frame'>
+ <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4130' column='1'/>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/bluetooth/hci_core.c' line='4130' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='hci_register_dev' mangled-name='hci_register_dev' filepath='net/bluetooth/hci_core.c' line='3898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_register_dev'>
- <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='3898' column='1'/>
+ <function-decl name='hci_register_dev' mangled-name='hci_register_dev' filepath='net/bluetooth/hci_core.c' line='3899' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_register_dev'>
+ <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='3899' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='hci_unregister_dev' mangled-name='hci_unregister_dev' filepath='net/bluetooth/hci_core.c' line='4014' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_unregister_dev'>
- <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4014' column='1'/>
+ <function-decl name='hci_unregister_dev' mangled-name='hci_unregister_dev' filepath='net/bluetooth/hci_core.c' line='4015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hci_unregister_dev'>
+ <parameter type-id='9ad862e7' name='hdev' filepath='net/bluetooth/hci_core.c' line='4015' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='hdmi_audio_infoframe_init' mangled-name='hdmi_audio_infoframe_init' filepath='drivers/video/hdmi.c' line='353' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hdmi_audio_infoframe_init'>
@@ -143599,10 +144019,18 @@
<parameter type-id='80f4b756' name='channel_name' filepath='drivers/iio/inkern.c' line='340' column='1'/>
<return type-id='2712709a'/>
</function-decl>
+ <function-decl name='iio_channel_get_all' mangled-name='iio_channel_get_all' filepath='drivers/iio/inkern.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_channel_get_all'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/inkern.c' line='409' column='1'/>
+ <return type-id='2712709a'/>
+ </function-decl>
<function-decl name='iio_channel_release' mangled-name='iio_channel_release' filepath='drivers/iio/inkern.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_channel_release'>
<parameter type-id='2712709a' name='channel' filepath='drivers/iio/inkern.c' line='356' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='iio_channel_release_all' mangled-name='iio_channel_release_all' filepath='drivers/iio/inkern.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_channel_release_all'>
+ <parameter type-id='2712709a' name='channels' filepath='drivers/iio/inkern.c' line='482' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='iio_dealloc_pollfunc' mangled-name='iio_dealloc_pollfunc' filepath='drivers/iio/industrialio-trigger.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_dealloc_pollfunc'>
<parameter type-id='9add1da7' name='pf' filepath='drivers/iio/industrialio-trigger.c' line='390' column='1'/>
<return type-id='48b5725f'/>
@@ -143646,6 +144074,9 @@
<parameter type-id='78041e8f' name='indio_dev' filepath='drivers/iio/industrialio-core.c' line='297' column='1'/>
<return type-id='9b7c55ef'/>
</function-decl>
+ <function-decl name='iio_kfifo_allocate' mangled-name='iio_kfifo_allocate' filepath='drivers/iio/buffer/kfifo_buf.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_kfifo_allocate'>
+ <return type-id='aa9ea333'/>
+ </function-decl>
<function-decl name='iio_pollfunc_store_time' mangled-name='iio_pollfunc_store_time' filepath='drivers/iio/industrialio-trigger.c' line='351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_pollfunc_store_time'>
<parameter type-id='95e97e5e' name='irq' filepath='drivers/iio/industrialio-trigger.c' line='351' column='1'/>
<parameter type-id='eaa32e2f' name='p' filepath='drivers/iio/industrialio-trigger.c' line='351' column='1'/>
@@ -143685,6 +144116,12 @@
<parameter type-id='7292109c' name='val2' filepath='drivers/iio/inkern.c' line='747' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='iio_read_const_attr' mangled-name='iio_read_const_attr' filepath='drivers/iio/industrialio-core.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_read_const_attr'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/industrialio-core.c' line='247' column='1'/>
+ <parameter type-id='89a2612a' name='attr' filepath='drivers/iio/industrialio-core.c' line='248' column='1'/>
+ <parameter type-id='26a90f95' name='buf' filepath='drivers/iio/industrialio-core.c' line='249' column='1'/>
+ <return type-id='79a0948f'/>
+ </function-decl>
<function-decl name='iio_read_mount_matrix' mangled-name='iio_read_mount_matrix' filepath='drivers/iio/industrialio-core.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_read_mount_matrix'>
<parameter type-id='fa0b179b' name='dev' filepath='drivers/iio/industrialio-core.c' line='627' column='1'/>
<parameter type-id='e02525e8' name='matrix' filepath='drivers/iio/industrialio-core.c' line='627' column='1'/>
@@ -143707,6 +144144,11 @@
<parameter type-id='54e54fbb' name='trig' filepath='drivers/iio/industrialio-trigger.c' line='626' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='iio_trigger_generic_data_rdy_poll' mangled-name='iio_trigger_generic_data_rdy_poll' filepath='drivers/iio/industrialio-trigger.c' line='215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_trigger_generic_data_rdy_poll'>
+ <parameter type-id='95e97e5e' name='irq' filepath='drivers/iio/industrialio-trigger.c' line='215' column='1'/>
+ <parameter type-id='eaa32e2f' name='private' filepath='drivers/iio/industrialio-trigger.c' line='215' column='1'/>
+ <return type-id='4bdecfd7'/>
+ </function-decl>
<function-decl name='iio_trigger_notify_done' mangled-name='iio_trigger_notify_done' filepath='drivers/iio/industrialio-trigger.c' line='239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_trigger_notify_done'>
<parameter type-id='54e54fbb' name='trig' filepath='drivers/iio/industrialio-trigger.c' line='239' column='1'/>
<return type-id='48b5725f'/>
@@ -143719,6 +144161,29 @@
<parameter type-id='54e54fbb' name='trig_info' filepath='drivers/iio/industrialio-trigger.c' line='106' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='iio_triggered_buffer_cleanup' mangled-name='iio_triggered_buffer_cleanup' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_triggered_buffer_cleanup'>
+ <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='92' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='iio_triggered_buffer_setup_ext' mangled-name='iio_triggered_buffer_setup_ext' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_triggered_buffer_setup_ext'>
+ <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='38' column='1'/>
+ <parameter type-id='3fefe9b7' name='h' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='39' column='1'/>
+ <parameter type-id='3fefe9b7' name='thread' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='40' column='1'/>
+ <parameter type-id='7597aac3' name='setup_ops' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='41' column='1'/>
+ <parameter type-id='cd733e18' name='buffer_attrs' filepath='drivers/iio/buffer/industrialio-triggered-buffer.c' line='42' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='iio_update_buffers' mangled-name='iio_update_buffers' filepath='drivers/iio/industrialio-buffer.c' line='1149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_update_buffers'>
+ <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-buffer.c' line='1149' column='1'/>
+ <parameter type-id='aa9ea333' name='insert_buffer' filepath='drivers/iio/industrialio-buffer.c' line='1150' column='1'/>
+ <parameter type-id='aa9ea333' name='remove_buffer' filepath='drivers/iio/industrialio-buffer.c' line='1151' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='iio_validate_scan_mask_onehot' mangled-name='iio_validate_scan_mask_onehot' filepath='drivers/iio/industrialio-buffer.c' line='1689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_validate_scan_mask_onehot'>
+ <parameter type-id='226853d2' name='indio_dev' filepath='drivers/iio/industrialio-buffer.c' line='1689' column='1'/>
+ <parameter type-id='f9b37274' name='mask' filepath='drivers/iio/industrialio-buffer.c' line='1690' column='1'/>
+ <return type-id='b50a4934'/>
+ </function-decl>
<function-decl name='iio_write_channel_attribute' mangled-name='iio_write_channel_attribute' filepath='drivers/iio/inkern.c' line='896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iio_write_channel_attribute'>
<parameter type-id='2712709a' name='chan' filepath='drivers/iio/inkern.c' line='896' column='1'/>
<parameter type-id='95e97e5e' name='val' filepath='drivers/iio/inkern.c' line='896' column='1'/>
@@ -143961,6 +144426,10 @@
<parameter type-id='bef1b918' name='handle' filepath='drivers/input/input.c' line='686' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='input_device_enabled' mangled-name='input_device_enabled' filepath='drivers/input/input.c' line='2247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_device_enabled'>
+ <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2247' column='1'/>
+ <return type-id='b50a4934'/>
+ </function-decl>
<function-decl name='input_event' mangled-name='input_event' filepath='drivers/input/input.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_event'>
<parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='449' column='1'/>
<parameter type-id='f0981eeb' name='type' filepath='drivers/input/input.c' line='450' column='1'/>
@@ -144070,11 +144539,21 @@
<parameter type-id='f0981eeb' name='code' filepath='drivers/input/input.c' line='2086' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='input_set_poll_interval' mangled-name='input_set_poll_interval' filepath='drivers/input/input-poller.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_set_poll_interval'>
+ <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-poller.c' line='105' column='1'/>
+ <parameter type-id='f0981eeb' name='interval' filepath='drivers/input/input-poller.c' line='105' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='input_set_timestamp' mangled-name='input_set_timestamp' filepath='drivers/input/input.c' line='2051' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_set_timestamp'>
<parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2051' column='1'/>
<parameter type-id='fbc017ef' name='timestamp' filepath='drivers/input/input.c' line='2051' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='input_setup_polling' mangled-name='input_setup_polling' filepath='drivers/input/input-poller.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_setup_polling'>
+ <parameter type-id='74b427eb' name='dev' filepath='drivers/input/input-poller.c' line='68' column='1'/>
+ <parameter type-id='b44880ea' name='poll_fn' filepath='drivers/input/input-poller.c' line='69' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='input_unregister_device' mangled-name='input_unregister_device' filepath='drivers/input/input.c' line='2385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='input_unregister_device'>
<parameter type-id='74b427eb' name='dev' filepath='drivers/input/input.c' line='2385' column='1'/>
<return type-id='48b5725f'/>
@@ -144139,63 +144618,69 @@
<parameter type-id='7359adad' name='end' filepath='mm/truncate.c' line='531' column='1'/>
<return type-id='7359adad'/>
</function-decl>
- <function-decl name='io_schedule' mangled-name='io_schedule' filepath='kernel/sched/core.c' line='8676' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='io_schedule'>
+ <var-decl name='io_cgrp_subsys_on_dfl_key' type-id='49a0ad34' mangled-name='io_cgrp_subsys_on_dfl_key' visibility='default' filepath='include/linux/cgroup_subsys.h' line='25' column='1' elf-symbol-id='io_cgrp_subsys_on_dfl_key'/>
+ <function-decl name='io_schedule' mangled-name='io_schedule' filepath='kernel/sched/core.c' line='8608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='io_schedule'>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='io_schedule_timeout' mangled-name='io_schedule_timeout' filepath='kernel/sched/core.c' line='8663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='io_schedule_timeout'>
- <parameter type-id='bd54fe1a' name='timeout' filepath='kernel/sched/core.c' line='8663' column='1'/>
+ <function-decl name='io_schedule_timeout' mangled-name='io_schedule_timeout' filepath='kernel/sched/core.c' line='8595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='io_schedule_timeout'>
+ <parameter type-id='bd54fe1a' name='timeout' filepath='kernel/sched/core.c' line='8595' column='1'/>
<return type-id='bd54fe1a'/>
</function-decl>
+ <function-decl name='ioc_lookup_icq' mangled-name='ioc_lookup_icq' filepath='block/blk-ioc.c' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ioc_lookup_icq'>
+ <parameter type-id='d042cfad' name='ioc' filepath='block/blk-ioc.c' line='333' column='1'/>
+ <parameter type-id='e7d2a5fc' name='q' filepath='block/blk-ioc.c' line='333' column='1'/>
+ <return type-id='7c6e0e0c'/>
+ </function-decl>
<function-decl name='iomap_dio_complete' mangled-name='iomap_dio_complete' filepath='fs/iomap/direct-io.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iomap_dio_complete'>
<parameter type-id='22159b04' name='dio' filepath='fs/iomap/direct-io.c' line='80' column='1'/>
<return type-id='79a0948f'/>
</function-decl>
<var-decl name='iomem_resource' type-id='5218160d' mangled-name='iomem_resource' visibility='default' filepath='kernel/resource.c' line='41' column='1' elf-symbol-id='iomem_resource'/>
- <function-decl name='iommu_alloc_resv_region' mangled-name='iommu_alloc_resv_region' filepath='drivers/iommu/iommu.c' line='2841' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_alloc_resv_region'>
- <parameter type-id='2522883d' name='start' filepath='drivers/iommu/iommu.c' line='2841' column='1'/>
- <parameter type-id='b59d7dce' name='length' filepath='drivers/iommu/iommu.c' line='2842' column='1'/>
- <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2842' column='1'/>
- <parameter type-id='256c2037' name='type' filepath='drivers/iommu/iommu.c' line='2843' column='1'/>
+ <function-decl name='iommu_alloc_resv_region' mangled-name='iommu_alloc_resv_region' filepath='drivers/iommu/iommu.c' line='2857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_alloc_resv_region'>
+ <parameter type-id='2522883d' name='start' filepath='drivers/iommu/iommu.c' line='2857' column='1'/>
+ <parameter type-id='b59d7dce' name='length' filepath='drivers/iommu/iommu.c' line='2858' column='1'/>
+ <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2858' column='1'/>
+ <parameter type-id='256c2037' name='type' filepath='drivers/iommu/iommu.c' line='2859' column='1'/>
<return type-id='24b0cc5e'/>
</function-decl>
- <function-decl name='iommu_attach_device' mangled-name='iommu_attach_device' filepath='drivers/iommu/iommu.c' line='1997' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_attach_device'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1997' column='1'/>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1997' column='1'/>
+ <function-decl name='iommu_attach_device' mangled-name='iommu_attach_device' filepath='drivers/iommu/iommu.c' line='2013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_attach_device'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2013' column='1'/>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2013' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_attach_group' mangled-name='iommu_attach_group' filepath='drivers/iommu/iommu.c' line='2339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_attach_group'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2339' column='1'/>
- <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='2339' column='1'/>
+ <function-decl name='iommu_attach_group' mangled-name='iommu_attach_group' filepath='drivers/iommu/iommu.c' line='2355' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_attach_group'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2355' column='1'/>
+ <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='2355' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_aux_attach_device' mangled-name='iommu_aux_attach_device' filepath='drivers/iommu/iommu.c' line='3014' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_attach_device'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3014' column='1'/>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3014' column='1'/>
+ <function-decl name='iommu_aux_attach_device' mangled-name='iommu_aux_attach_device' filepath='drivers/iommu/iommu.c' line='3030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_attach_device'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3030' column='1'/>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3030' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_aux_detach_device' mangled-name='iommu_aux_detach_device' filepath='drivers/iommu/iommu.c' line='3028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_detach_device'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3028' column='1'/>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3028' column='1'/>
+ <function-decl name='iommu_aux_detach_device' mangled-name='iommu_aux_detach_device' filepath='drivers/iommu/iommu.c' line='3044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_detach_device'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3044' column='1'/>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3044' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='iommu_aux_get_pasid' mangled-name='iommu_aux_get_pasid' filepath='drivers/iommu/iommu.c' line='3037' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_get_pasid'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3037' column='1'/>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3037' column='1'/>
+ <function-decl name='iommu_aux_get_pasid' mangled-name='iommu_aux_get_pasid' filepath='drivers/iommu/iommu.c' line='3053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_aux_get_pasid'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='3053' column='1'/>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3053' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_detach_device' mangled-name='iommu_detach_device' filepath='drivers/iommu/iommu.c' line='2258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_detach_device'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2258' column='1'/>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2258' column='1'/>
+ <function-decl name='iommu_detach_device' mangled-name='iommu_detach_device' filepath='drivers/iommu/iommu.c' line='2274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_detach_device'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2274' column='1'/>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2274' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='iommu_dev_enable_feature' mangled-name='iommu_dev_enable_feature' filepath='drivers/iommu/iommu.c' line='2960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dev_enable_feature'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2960' column='1'/>
- <parameter type-id='29d28711' name='feat' filepath='drivers/iommu/iommu.c' line='2960' column='1'/>
+ <function-decl name='iommu_dev_enable_feature' mangled-name='iommu_dev_enable_feature' filepath='drivers/iommu/iommu.c' line='2976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dev_enable_feature'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2976' column='1'/>
+ <parameter type-id='29d28711' name='feat' filepath='drivers/iommu/iommu.c' line='2976' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_dev_feature_enabled' mangled-name='iommu_dev_feature_enabled' filepath='drivers/iommu/iommu.c' line='2991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dev_feature_enabled'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2991' column='1'/>
- <parameter type-id='29d28711' name='feat' filepath='drivers/iommu/iommu.c' line='2991' column='1'/>
+ <function-decl name='iommu_dev_feature_enabled' mangled-name='iommu_dev_feature_enabled' filepath='drivers/iommu/iommu.c' line='3007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_dev_feature_enabled'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='3007' column='1'/>
+ <parameter type-id='29d28711' name='feat' filepath='drivers/iommu/iommu.c' line='3007' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
<function-decl name='iommu_device_link' mangled-name='iommu_device_link' filepath='drivers/iommu/iommu-sysfs.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_device_link'>
@@ -144239,30 +144724,30 @@
<parameter type-id='e84b031a' name='list' filepath='drivers/iommu/dma-iommu.c' line='194' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='iommu_domain_alloc' mangled-name='iommu_domain_alloc' filepath='drivers/iommu/iommu.c' line='1970' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_domain_alloc'>
- <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1970' column='1'/>
+ <function-decl name='iommu_domain_alloc' mangled-name='iommu_domain_alloc' filepath='drivers/iommu/iommu.c' line='1986' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_domain_alloc'>
+ <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1986' column='1'/>
<return type-id='bff05edb'/>
</function-decl>
- <function-decl name='iommu_domain_free' mangled-name='iommu_domain_free' filepath='drivers/iommu/iommu.c' line='1976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_domain_free'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1976' column='1'/>
+ <function-decl name='iommu_domain_free' mangled-name='iommu_domain_free' filepath='drivers/iommu/iommu.c' line='1992' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_domain_free'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1992' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='iommu_fwspec_add_ids' mangled-name='iommu_fwspec_add_ids' filepath='drivers/iommu/iommu.c' line='2931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_fwspec_add_ids'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2931' column='1'/>
- <parameter type-id='f9409001' name='ids' filepath='drivers/iommu/iommu.c' line='2931' column='1'/>
- <parameter type-id='95e97e5e' name='num_ids' filepath='drivers/iommu/iommu.c' line='2931' column='1'/>
+ <function-decl name='iommu_fwspec_add_ids' mangled-name='iommu_fwspec_add_ids' filepath='drivers/iommu/iommu.c' line='2947' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_fwspec_add_ids'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2947' column='1'/>
+ <parameter type-id='f9409001' name='ids' filepath='drivers/iommu/iommu.c' line='2947' column='1'/>
+ <parameter type-id='95e97e5e' name='num_ids' filepath='drivers/iommu/iommu.c' line='2947' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_fwspec_free' mangled-name='iommu_fwspec_free' filepath='drivers/iommu/iommu.c' line='2919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_fwspec_free'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2919' column='1'/>
+ <function-decl name='iommu_fwspec_free' mangled-name='iommu_fwspec_free' filepath='drivers/iommu/iommu.c' line='2935' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_fwspec_free'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2935' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='iommu_get_dma_cookie' mangled-name='iommu_get_dma_cookie' filepath='drivers/iommu/dma-iommu.c' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_get_dma_cookie'>
<parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/dma-iommu.c' line='112' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_get_domain_for_dev' mangled-name='iommu_get_domain_for_dev' filepath='drivers/iommu/iommu.c' line='2280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_get_domain_for_dev'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2280' column='1'/>
+ <function-decl name='iommu_get_domain_for_dev' mangled-name='iommu_get_domain_for_dev' filepath='drivers/iommu/iommu.c' line='2296' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_get_domain_for_dev'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2296' column='1'/>
<return type-id='bff05edb'/>
</function-decl>
<function-decl name='iommu_get_msi_cookie' mangled-name='iommu_get_msi_cookie' filepath='drivers/iommu/dma-iommu.c' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_get_msi_cookie'>
@@ -144270,110 +144755,110 @@
<parameter type-id='cf29c9b3' name='base' filepath='drivers/iommu/dma-iommu.c' line='137' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_group_alloc' mangled-name='iommu_group_alloc' filepath='drivers/iommu/iommu.c' line='614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_alloc'>
+ <function-decl name='iommu_group_alloc' mangled-name='iommu_group_alloc' filepath='drivers/iommu/iommu.c' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_alloc'>
<return type-id='0b19fc54'/>
</function-decl>
- <function-decl name='iommu_group_for_each_dev' mangled-name='iommu_group_for_each_dev' filepath='drivers/iommu/iommu.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_for_each_dev'>
- <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1013' column='1'/>
- <parameter type-id='eaa32e2f' name='data' filepath='drivers/iommu/iommu.c' line='1013' column='1'/>
- <parameter type-id='92d15ae9' name='fn' filepath='drivers/iommu/iommu.c' line='1014' column='1'/>
+ <function-decl name='iommu_group_for_each_dev' mangled-name='iommu_group_for_each_dev' filepath='drivers/iommu/iommu.c' line='1029' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_for_each_dev'>
+ <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1029' column='1'/>
+ <parameter type-id='eaa32e2f' name='data' filepath='drivers/iommu/iommu.c' line='1029' column='1'/>
+ <parameter type-id='92d15ae9' name='fn' filepath='drivers/iommu/iommu.c' line='1030' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_group_get' mangled-name='iommu_group_get' filepath='drivers/iommu/iommu.c' line='1034' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_get'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1034' column='1'/>
+ <function-decl name='iommu_group_get' mangled-name='iommu_group_get' filepath='drivers/iommu/iommu.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_get'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1050' column='1'/>
<return type-id='0b19fc54'/>
</function-decl>
- <function-decl name='iommu_group_get_iommudata' mangled-name='iommu_group_get_iommudata' filepath='drivers/iommu/iommu.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_get_iommudata'>
- <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='709' column='1'/>
+ <function-decl name='iommu_group_get_iommudata' mangled-name='iommu_group_get_iommudata' filepath='drivers/iommu/iommu.c' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_get_iommudata'>
+ <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='725' column='1'/>
<return type-id='eaa32e2f'/>
</function-decl>
- <function-decl name='iommu_group_put' mangled-name='iommu_group_put' filepath='drivers/iommu/iommu.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_put'>
- <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1066' column='1'/>
+ <function-decl name='iommu_group_put' mangled-name='iommu_group_put' filepath='drivers/iommu/iommu.c' line='1082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_put'>
+ <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1082' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='iommu_group_ref_get' mangled-name='iommu_group_ref_get' filepath='drivers/iommu/iommu.c' line='1052' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_ref_get'>
- <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1052' column='1'/>
+ <function-decl name='iommu_group_ref_get' mangled-name='iommu_group_ref_get' filepath='drivers/iommu/iommu.c' line='1068' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_ref_get'>
+ <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1068' column='1'/>
<return type-id='0b19fc54'/>
</function-decl>
- <function-decl name='iommu_group_register_notifier' mangled-name='iommu_group_register_notifier' filepath='drivers/iommu/iommu.c' line='1082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_register_notifier'>
- <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1082' column='1'/>
- <parameter type-id='d504f73d' name='nb' filepath='drivers/iommu/iommu.c' line='1083' column='1'/>
+ <function-decl name='iommu_group_register_notifier' mangled-name='iommu_group_register_notifier' filepath='drivers/iommu/iommu.c' line='1098' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_register_notifier'>
+ <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='1098' column='1'/>
+ <parameter type-id='d504f73d' name='nb' filepath='drivers/iommu/iommu.c' line='1099' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_group_remove_device' mangled-name='iommu_group_remove_device' filepath='drivers/iommu/iommu.c' line='937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_remove_device'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='937' column='1'/>
+ <function-decl name='iommu_group_remove_device' mangled-name='iommu_group_remove_device' filepath='drivers/iommu/iommu.c' line='953' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_remove_device'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='953' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='iommu_group_set_iommudata' mangled-name='iommu_group_set_iommudata' filepath='drivers/iommu/iommu.c' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_set_iommudata'>
- <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='725' column='1'/>
- <parameter type-id='eaa32e2f' name='iommu_data' filepath='drivers/iommu/iommu.c' line='725' column='1'/>
- <parameter type-id='b7f9d8e6' name='release' filepath='drivers/iommu/iommu.c' line='726' column='1'/>
- <return type-id='48b5725f'/>
- </function-decl>
- <function-decl name='iommu_group_set_name' mangled-name='iommu_group_set_name' filepath='drivers/iommu/iommu.c' line='741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_set_name'>
+ <function-decl name='iommu_group_set_iommudata' mangled-name='iommu_group_set_iommudata' filepath='drivers/iommu/iommu.c' line='741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_set_iommudata'>
<parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='741' column='1'/>
- <parameter type-id='80f4b756' name='name' filepath='drivers/iommu/iommu.c' line='741' column='1'/>
+ <parameter type-id='eaa32e2f' name='iommu_data' filepath='drivers/iommu/iommu.c' line='741' column='1'/>
+ <parameter type-id='b7f9d8e6' name='release' filepath='drivers/iommu/iommu.c' line='742' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='iommu_group_set_name' mangled-name='iommu_group_set_name' filepath='drivers/iommu/iommu.c' line='757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_group_set_name'>
+ <parameter type-id='0b19fc54' name='group' filepath='drivers/iommu/iommu.c' line='757' column='1'/>
+ <parameter type-id='80f4b756' name='name' filepath='drivers/iommu/iommu.c' line='757' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_iova_to_phys' mangled-name='iommu_iova_to_phys' filepath='drivers/iommu/iommu.c' line='2392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_iova_to_phys'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2392' column='1'/>
- <parameter type-id='cf29c9b3' name='iova' filepath='drivers/iommu/iommu.c' line='2392' column='1'/>
+ <function-decl name='iommu_iova_to_phys' mangled-name='iommu_iova_to_phys' filepath='drivers/iommu/iommu.c' line='2408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_iova_to_phys'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2408' column='1'/>
+ <parameter type-id='cf29c9b3' name='iova' filepath='drivers/iommu/iommu.c' line='2408' column='1'/>
<return type-id='2522883d'/>
</function-decl>
- <function-decl name='iommu_map' mangled-name='iommu_map' filepath='drivers/iommu/iommu.c' line='2555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_map'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2555' column='1'/>
- <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2555' column='1'/>
- <parameter type-id='2522883d' name='paddr' filepath='drivers/iommu/iommu.c' line='2556' column='1'/>
- <parameter type-id='b59d7dce' name='size' filepath='drivers/iommu/iommu.c' line='2556' column='1'/>
- <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2556' column='1'/>
+ <function-decl name='iommu_map' mangled-name='iommu_map' filepath='drivers/iommu/iommu.c' line='2571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_map'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2571' column='1'/>
+ <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2571' column='1'/>
+ <parameter type-id='2522883d' name='paddr' filepath='drivers/iommu/iommu.c' line='2572' column='1'/>
+ <parameter type-id='b59d7dce' name='size' filepath='drivers/iommu/iommu.c' line='2572' column='1'/>
+ <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2572' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_map_sg' mangled-name='iommu_map_sg' filepath='drivers/iommu/iommu.c' line='2717' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_map_sg'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2717' column='1'/>
- <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2717' column='1'/>
- <parameter type-id='bf3ef905' name='sg' filepath='drivers/iommu/iommu.c' line='2718' column='1'/>
- <parameter type-id='f0981eeb' name='nents' filepath='drivers/iommu/iommu.c' line='2718' column='1'/>
- <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2718' column='1'/>
+ <function-decl name='iommu_map_sg' mangled-name='iommu_map_sg' filepath='drivers/iommu/iommu.c' line='2733' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_map_sg'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2733' column='1'/>
+ <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2733' column='1'/>
+ <parameter type-id='bf3ef905' name='sg' filepath='drivers/iommu/iommu.c' line='2734' column='1'/>
+ <parameter type-id='f0981eeb' name='nents' filepath='drivers/iommu/iommu.c' line='2734' column='1'/>
+ <parameter type-id='95e97e5e' name='prot' filepath='drivers/iommu/iommu.c' line='2734' column='1'/>
<return type-id='79a0948f'/>
</function-decl>
- <function-decl name='iommu_present' mangled-name='iommu_present' filepath='drivers/iommu/iommu.c' line='1907' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_present'>
- <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1907' column='1'/>
+ <function-decl name='iommu_present' mangled-name='iommu_present' filepath='drivers/iommu/iommu.c' line='1923' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_present'>
+ <parameter type-id='5e2671f8' name='bus' filepath='drivers/iommu/iommu.c' line='1923' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
<function-decl name='iommu_put_dma_cookie' mangled-name='iommu_put_dma_cookie' filepath='drivers/iommu/dma-iommu.c' line='164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_put_dma_cookie'>
<parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/dma-iommu.c' line='164' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='iommu_register_device_fault_handler' mangled-name='iommu_register_device_fault_handler' filepath='drivers/iommu/iommu.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_register_device_fault_handler'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1121' column='1'/>
- <parameter type-id='a84f5b46' name='handler' filepath='drivers/iommu/iommu.c' line='1122' column='1'/>
- <parameter type-id='eaa32e2f' name='data' filepath='drivers/iommu/iommu.c' line='1123' column='1'/>
+ <function-decl name='iommu_register_device_fault_handler' mangled-name='iommu_register_device_fault_handler' filepath='drivers/iommu/iommu.c' line='1137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_register_device_fault_handler'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1137' column='1'/>
+ <parameter type-id='a84f5b46' name='handler' filepath='drivers/iommu/iommu.c' line='1138' column='1'/>
+ <parameter type-id='eaa32e2f' name='data' filepath='drivers/iommu/iommu.c' line='1139' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_report_device_fault' mangled-name='iommu_report_device_fault' filepath='drivers/iommu/iommu.c' line='1206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_report_device_fault'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1206' column='1'/>
- <parameter type-id='af233abc' name='evt' filepath='drivers/iommu/iommu.c' line='1206' column='1'/>
+ <function-decl name='iommu_report_device_fault' mangled-name='iommu_report_device_fault' filepath='drivers/iommu/iommu.c' line='1222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_report_device_fault'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1222' column='1'/>
+ <parameter type-id='af233abc' name='evt' filepath='drivers/iommu/iommu.c' line='1222' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_set_fault_handler' mangled-name='iommu_set_fault_handler' filepath='drivers/iommu/iommu.c' line='1934' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_set_fault_handler'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1934' column='1'/>
- <parameter type-id='a01c3626' name='handler' filepath='drivers/iommu/iommu.c' line='1935' column='1'/>
- <parameter type-id='eaa32e2f' name='token' filepath='drivers/iommu/iommu.c' line='1936' column='1'/>
+ <function-decl name='iommu_set_fault_handler' mangled-name='iommu_set_fault_handler' filepath='drivers/iommu/iommu.c' line='1950' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_set_fault_handler'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='1950' column='1'/>
+ <parameter type-id='a01c3626' name='handler' filepath='drivers/iommu/iommu.c' line='1951' column='1'/>
+ <parameter type-id='eaa32e2f' name='token' filepath='drivers/iommu/iommu.c' line='1952' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='iommu_set_pgtable_quirks' mangled-name='iommu_set_pgtable_quirks' filepath='drivers/iommu/iommu.c' line='2795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_set_pgtable_quirks'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2795' column='1'/>
- <parameter type-id='7359adad' name='quirk' filepath='drivers/iommu/iommu.c' line='2796' column='1'/>
+ <function-decl name='iommu_set_pgtable_quirks' mangled-name='iommu_set_pgtable_quirks' filepath='drivers/iommu/iommu.c' line='2811' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_set_pgtable_quirks'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2811' column='1'/>
+ <parameter type-id='7359adad' name='quirk' filepath='drivers/iommu/iommu.c' line='2812' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='iommu_unmap' mangled-name='iommu_unmap' filepath='drivers/iommu/iommu.c' line='2637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_unmap'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2637' column='1'/>
- <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2638' column='1'/>
- <parameter type-id='b59d7dce' name='size' filepath='drivers/iommu/iommu.c' line='2638' column='1'/>
+ <function-decl name='iommu_unmap' mangled-name='iommu_unmap' filepath='drivers/iommu/iommu.c' line='2653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_unmap'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2653' column='1'/>
+ <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2654' column='1'/>
+ <parameter type-id='b59d7dce' name='size' filepath='drivers/iommu/iommu.c' line='2654' column='1'/>
<return type-id='b59d7dce'/>
</function-decl>
- <function-decl name='iommu_unregister_device_fault_handler' mangled-name='iommu_unregister_device_fault_handler' filepath='drivers/iommu/iommu.c' line='1166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_unregister_device_fault_handler'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1166' column='1'/>
+ <function-decl name='iommu_unregister_device_fault_handler' mangled-name='iommu_unregister_device_fault_handler' filepath='drivers/iommu/iommu.c' line='1182' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iommu_unregister_device_fault_handler'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1182' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<var-decl name='ioport_resource' type-id='5218160d' mangled-name='ioport_resource' visibility='default' filepath='kernel/resource.c' line='33' column='1' elf-symbol-id='ioport_resource'/>
@@ -144441,6 +144926,12 @@
<parameter type-id='4fa10f9e' name='i' filepath='lib/iov_iter.c' line='952' column='1'/>
<return type-id='b59d7dce'/>
</function-decl>
+ <function-decl name='iova_cache_get' mangled-name='iova_cache_get' filepath='drivers/iommu/iova.c' line='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iova_cache_get'>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='iova_cache_put' mangled-name='iova_cache_put' filepath='drivers/iommu/iova.c' line='433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iova_cache_put'>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='ip6_find_1stfragopt' mangled-name='ip6_find_1stfragopt' filepath='net/ipv6/output_core.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ip6_find_1stfragopt'>
<parameter type-id='0fbf3cfd' name='skb' filepath='net/ipv6/output_core.c' line='64' column='1'/>
<parameter type-id='1f37a7f4' name='nexthdr' filepath='net/ipv6/output_core.c' line='64' column='1'/>
@@ -144764,6 +145255,13 @@
<parameter type-id='eaa32e2f' name='arg' filepath='kernel/irq/irqdomain.c' line='1716' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='irq_domain_associate_many' mangled-name='irq_domain_associate_many' filepath='kernel/irq/irqdomain.c' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_associate_many'>
+ <parameter type-id='7544e824' name='domain' filepath='kernel/irq/irqdomain.c' line='612' column='1'/>
+ <parameter type-id='f0981eeb' name='irq_base' filepath='kernel/irq/irqdomain.c' line='612' column='1'/>
+ <parameter type-id='88370ce9' name='hwirq_base' filepath='kernel/irq/irqdomain.c' line='613' column='1'/>
+ <parameter type-id='95e97e5e' name='count' filepath='kernel/irq/irqdomain.c' line='613' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='irq_domain_create_hierarchy' mangled-name='irq_domain_create_hierarchy' filepath='kernel/irq/irqdomain.c' line='1095' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='irq_domain_create_hierarchy'>
<parameter type-id='7544e824' name='parent' filepath='kernel/irq/irqdomain.c' line='1095' column='1'/>
<parameter type-id='f0981eeb' name='flags' filepath='kernel/irq/irqdomain.c' line='1096' column='1'/>
@@ -145039,6 +145537,12 @@
<parameter type-id='eaa32e2f' name='p' filepath='fs/file.c' line='1326' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='iterate_supers_type' mangled-name='iterate_supers_type' filepath='fs/super.c' line='718' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iterate_supers_type'>
+ <parameter type-id='21e53d44' name='type' filepath='fs/super.c' line='718' column='1'/>
+ <parameter type-id='46530b39' name='f' filepath='fs/super.c' line='719' column='1'/>
+ <parameter type-id='eaa32e2f' name='arg' filepath='fs/super.c' line='719' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='iunique' mangled-name='iunique' filepath='fs/inode.c' line='1277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='iunique'>
<parameter type-id='42c8f564' name='sb' filepath='fs/inode.c' line='1277' column='1'/>
<parameter type-id='2aa75eef' name='max_reserved' filepath='fs/inode.c' line='1277' column='1'/>
@@ -145152,7 +145656,7 @@
<parameter type-id='95e97e5e' name='flags' filepath='net/socket.c' line='3454' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <var-decl name='kernel_cpustat' type-id='7b5f27b3' mangled-name='kernel_cpustat' visibility='default' filepath='kernel/sched/core.c' line='5316' column='1' elf-symbol-id='kernel_cpustat'/>
+ <var-decl name='kernel_cpustat' type-id='7b5f27b3' mangled-name='kernel_cpustat' visibility='default' filepath='kernel/sched/core.c' line='5284' column='1' elf-symbol-id='kernel_cpustat'/>
<function-decl name='kernel_getsockname' mangled-name='kernel_getsockname' filepath='net/socket.c' line='3469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kernel_getsockname'>
<parameter type-id='13103032' name='sock' filepath='net/socket.c' line='3469' column='1'/>
<parameter type-id='5c0abad8' name='addr' filepath='net/socket.c' line='3469' column='1'/>
@@ -145310,6 +145814,10 @@
<parameter type-id='95e97e5e' name='band' filepath='fs/fcntl.c' line='1028' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='kill_litter_super' mangled-name='kill_litter_super' filepath='fs/super.c' line='1063' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kill_litter_super'>
+ <parameter type-id='42c8f564' name='sb' filepath='fs/super.c' line='1063' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='kill_pid' mangled-name='kill_pid' filepath='kernel/signal.c' line='1915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kill_pid'>
<parameter type-id='b94e5398' name='pid' filepath='kernel/signal.c' line='1915' column='1'/>
<parameter type-id='95e97e5e' name='sig' filepath='kernel/signal.c' line='1915' column='1'/>
@@ -145515,7 +146023,7 @@
<return type-id='b59d7dce'/>
</function-decl>
<var-decl name='ksoftirqd' type-id='f23e2572' mangled-name='ksoftirqd' visibility='default' filepath='kernel/softirq.c' line='64' column='1' elf-symbol-id='ksoftirqd'/>
- <var-decl name='kstat' type-id='153750ef' mangled-name='kstat' visibility='default' filepath='kernel/sched/core.c' line='5315' column='1' elf-symbol-id='kstat'/>
+ <var-decl name='kstat' type-id='153750ef' mangled-name='kstat' visibility='default' filepath='kernel/sched/core.c' line='5283' column='1' elf-symbol-id='kstat'/>
<function-decl name='kstat_irqs_cpu' mangled-name='kstat_irqs_cpu' filepath='kernel/irq/irqdesc.c' line='939' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kstat_irqs_cpu'>
<parameter type-id='f0981eeb' name='irq' filepath='kernel/irq/irqdesc.c' line='939' column='1'/>
<parameter type-id='95e97e5e' name='cpu' filepath='kernel/irq/irqdesc.c' line='939' column='1'/>
@@ -145661,8 +146169,8 @@
<parameter type-id='a0c47697' name='res' filepath='lib/kstrtox.c' line='406' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='kswapd' mangled-name='kswapd' filepath='mm/vmscan.c' line='7046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kswapd'>
- <parameter type-id='eaa32e2f' name='p' filepath='mm/vmscan.c' line='7046' column='1'/>
+ <function-decl name='kswapd' mangled-name='kswapd' filepath='mm/vmscan.c' line='7045' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='kswapd'>
+ <parameter type-id='eaa32e2f' name='p' filepath='mm/vmscan.c' line='7045' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='ksys_sync_helper' mangled-name='ksys_sync_helper' filepath='kernel/power/main.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ksys_sync_helper'>
@@ -145845,44 +146353,44 @@
<parameter type-id='13103032' name='sock' filepath='net/bluetooth/l2cap_sock.c' line='49' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='l2tp_session_create' mangled-name='l2tp_session_create' filepath='net/l2tp/l2tp_core.c' line='1580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_create'>
- <parameter type-id='95e97e5e' name='priv_size' filepath='net/l2tp/l2tp_core.c' line='1580' column='1'/>
- <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1580' column='1'/>
- <parameter type-id='19c2251e' name='session_id' filepath='net/l2tp/l2tp_core.c' line='1580' column='1'/>
- <parameter type-id='19c2251e' name='peer_session_id' filepath='net/l2tp/l2tp_core.c' line='1581' column='1'/>
- <parameter type-id='0357a19d' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1581' column='1'/>
+ <function-decl name='l2tp_session_create' mangled-name='l2tp_session_create' filepath='net/l2tp/l2tp_core.c' line='1583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_create'>
+ <parameter type-id='95e97e5e' name='priv_size' filepath='net/l2tp/l2tp_core.c' line='1583' column='1'/>
+ <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1583' column='1'/>
+ <parameter type-id='19c2251e' name='session_id' filepath='net/l2tp/l2tp_core.c' line='1583' column='1'/>
+ <parameter type-id='19c2251e' name='peer_session_id' filepath='net/l2tp/l2tp_core.c' line='1584' column='1'/>
+ <parameter type-id='0357a19d' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1584' column='1'/>
<return type-id='d35aee0a'/>
</function-decl>
- <function-decl name='l2tp_session_delete' mangled-name='l2tp_session_delete' filepath='net/l2tp/l2tp_core.c' line='1547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_delete'>
- <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1547' column='1'/>
+ <function-decl name='l2tp_session_delete' mangled-name='l2tp_session_delete' filepath='net/l2tp/l2tp_core.c' line='1550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_delete'>
+ <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1550' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='l2tp_session_get_nth' mangled-name='l2tp_session_get_nth' filepath='net/l2tp/l2tp_core.c' line='288' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_get_nth'>
- <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='288' column='1'/>
- <parameter type-id='95e97e5e' name='nth' filepath='net/l2tp/l2tp_core.c' line='288' column='1'/>
+ <function-decl name='l2tp_session_get_nth' mangled-name='l2tp_session_get_nth' filepath='net/l2tp/l2tp_core.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_get_nth'>
+ <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='286' column='1'/>
+ <parameter type-id='95e97e5e' name='nth' filepath='net/l2tp/l2tp_core.c' line='286' column='1'/>
<return type-id='d35aee0a'/>
</function-decl>
- <function-decl name='l2tp_session_register' mangled-name='l2tp_session_register' filepath='net/l2tp/l2tp_core.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_register'>
- <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='339' column='1'/>
- <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='340' column='1'/>
+ <function-decl name='l2tp_session_register' mangled-name='l2tp_session_register' filepath='net/l2tp/l2tp_core.c' line='337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_register'>
+ <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='337' column='1'/>
+ <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='338' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='l2tp_session_set_header_len' mangled-name='l2tp_session_set_header_len' filepath='net/l2tp/l2tp_core.c' line='1565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_set_header_len'>
- <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1565' column='1'/>
- <parameter type-id='95e97e5e' name='version' filepath='net/l2tp/l2tp_core.c' line='1565' column='1'/>
+ <function-decl name='l2tp_session_set_header_len' mangled-name='l2tp_session_set_header_len' filepath='net/l2tp/l2tp_core.c' line='1568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_session_set_header_len'>
+ <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1568' column='1'/>
+ <parameter type-id='95e97e5e' name='version' filepath='net/l2tp/l2tp_core.c' line='1568' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='l2tp_tunnel_create' mangled-name='l2tp_tunnel_create' filepath='net/l2tp/l2tp_core.c' line='1389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_create'>
- <parameter type-id='95e97e5e' name='fd' filepath='net/l2tp/l2tp_core.c' line='1389' column='1'/>
- <parameter type-id='95e97e5e' name='version' filepath='net/l2tp/l2tp_core.c' line='1389' column='1'/>
- <parameter type-id='19c2251e' name='tunnel_id' filepath='net/l2tp/l2tp_core.c' line='1389' column='1'/>
- <parameter type-id='19c2251e' name='peer_tunnel_id' filepath='net/l2tp/l2tp_core.c' line='1389' column='1'/>
- <parameter type-id='88850643' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
- <parameter type-id='383758d6' name='tunnelp' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+ <function-decl name='l2tp_tunnel_create' mangled-name='l2tp_tunnel_create' filepath='net/l2tp/l2tp_core.c' line='1390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_create'>
+ <parameter type-id='95e97e5e' name='fd' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+ <parameter type-id='95e97e5e' name='version' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+ <parameter type-id='19c2251e' name='tunnel_id' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+ <parameter type-id='19c2251e' name='peer_tunnel_id' filepath='net/l2tp/l2tp_core.c' line='1390' column='1'/>
+ <parameter type-id='88850643' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1391' column='1'/>
+ <parameter type-id='383758d6' name='tunnelp' filepath='net/l2tp/l2tp_core.c' line='1391' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='l2tp_tunnel_delete' mangled-name='l2tp_tunnel_delete' filepath='net/l2tp/l2tp_core.c' line='1537' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_delete'>
- <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1537' column='1'/>
+ <function-decl name='l2tp_tunnel_delete' mangled-name='l2tp_tunnel_delete' filepath='net/l2tp/l2tp_core.c' line='1540' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_delete'>
+ <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1540' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='l2tp_tunnel_get' mangled-name='l2tp_tunnel_get' filepath='net/l2tp/l2tp_core.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get'>
@@ -145890,30 +146398,30 @@
<parameter type-id='19c2251e' name='tunnel_id' filepath='net/l2tp/l2tp_core.c' line='205' column='1'/>
<return type-id='2d83a1b8'/>
</function-decl>
- <function-decl name='l2tp_tunnel_get_nth' mangled-name='l2tp_tunnel_get_nth' filepath='net/l2tp/l2tp_core.c' line='225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get_nth'>
- <parameter type-id='f91cf277' name='net' filepath='net/l2tp/l2tp_core.c' line='225' column='1'/>
- <parameter type-id='95e97e5e' name='nth' filepath='net/l2tp/l2tp_core.c' line='225' column='1'/>
+ <function-decl name='l2tp_tunnel_get_nth' mangled-name='l2tp_tunnel_get_nth' filepath='net/l2tp/l2tp_core.c' line='222' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get_nth'>
+ <parameter type-id='f91cf277' name='net' filepath='net/l2tp/l2tp_core.c' line='222' column='1'/>
+ <parameter type-id='95e97e5e' name='nth' filepath='net/l2tp/l2tp_core.c' line='222' column='1'/>
<return type-id='2d83a1b8'/>
</function-decl>
- <function-decl name='l2tp_tunnel_get_session' mangled-name='l2tp_tunnel_get_session' filepath='net/l2tp/l2tp_core.c' line='245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get_session'>
- <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='245' column='1'/>
- <parameter type-id='19c2251e' name='session_id' filepath='net/l2tp/l2tp_core.c' line='246' column='1'/>
+ <function-decl name='l2tp_tunnel_get_session' mangled-name='l2tp_tunnel_get_session' filepath='net/l2tp/l2tp_core.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_get_session'>
+ <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='243' column='1'/>
+ <parameter type-id='19c2251e' name='session_id' filepath='net/l2tp/l2tp_core.c' line='244' column='1'/>
<return type-id='d35aee0a'/>
</function-decl>
- <function-decl name='l2tp_tunnel_register' mangled-name='l2tp_tunnel_register' filepath='net/l2tp/l2tp_core.c' line='1455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_register'>
- <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1455' column='1'/>
- <parameter type-id='a2bff676' name='net' filepath='net/l2tp/l2tp_core.c' line='1455' column='1'/>
- <parameter type-id='88850643' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1456' column='1'/>
+ <function-decl name='l2tp_tunnel_register' mangled-name='l2tp_tunnel_register' filepath='net/l2tp/l2tp_core.c' line='1456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_tunnel_register'>
+ <parameter type-id='2d83a1b8' name='tunnel' filepath='net/l2tp/l2tp_core.c' line='1456' column='1'/>
+ <parameter type-id='a2bff676' name='net' filepath='net/l2tp/l2tp_core.c' line='1456' column='1'/>
+ <parameter type-id='88850643' name='cfg' filepath='net/l2tp/l2tp_core.c' line='1457' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='l2tp_udp_encap_recv' mangled-name='l2tp_udp_encap_recv' filepath='net/l2tp/l2tp_core.c' line='898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_udp_encap_recv'>
- <parameter type-id='f772df6d' name='sk' filepath='net/l2tp/l2tp_core.c' line='898' column='1'/>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/l2tp/l2tp_core.c' line='898' column='1'/>
+ <function-decl name='l2tp_udp_encap_recv' mangled-name='l2tp_udp_encap_recv' filepath='net/l2tp/l2tp_core.c' line='896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_udp_encap_recv'>
+ <parameter type-id='f772df6d' name='sk' filepath='net/l2tp/l2tp_core.c' line='896' column='1'/>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/l2tp/l2tp_core.c' line='896' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='l2tp_xmit_skb' mangled-name='l2tp_xmit_skb' filepath='net/l2tp/l2tp_core.c' line='1106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_xmit_skb'>
- <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1106' column='1'/>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/l2tp/l2tp_core.c' line='1106' column='1'/>
+ <function-decl name='l2tp_xmit_skb' mangled-name='l2tp_xmit_skb' filepath='net/l2tp/l2tp_core.c' line='1104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='l2tp_xmit_skb'>
+ <parameter type-id='d35aee0a' name='session' filepath='net/l2tp/l2tp_core.c' line='1104' column='1'/>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/l2tp/l2tp_core.c' line='1104' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='led_classdev_flash_register_ext' mangled-name='led_classdev_flash_register_ext' filepath='drivers/leds/led-class-flash.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='led_classdev_flash_register_ext'>
@@ -146075,8 +146583,8 @@
<parameter type-id='95e97e5e' name='subclass' filepath='net/core/sock.c' line='3220' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='lockref_get' mangled-name='lockref_get' filepath='lib/lockref.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lockref_get'>
- <parameter type-id='5bfdb453' name='lockref' filepath='lib/lockref.c' line='44' column='1'/>
+ <function-decl name='lockref_get' mangled-name='lockref_get' filepath='lib/lockref.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lockref_get'>
+ <parameter type-id='5bfdb453' name='lockref' filepath='lib/lockref.c' line='43' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='log_abnormal_wakeup_reason' mangled-name='log_abnormal_wakeup_reason' filepath='kernel/power/wakeup_reason.c' line='249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='log_abnormal_wakeup_reason'>
@@ -146307,12 +146815,12 @@
<parameter type-id='95e97e5e' name='value' filepath='drivers/net/phy/mdio_device.c' line='118' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='mdiobus_alloc_size' mangled-name='mdiobus_alloc_size' filepath='drivers/net/phy/mdio_bus.c' line='137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_alloc_size'>
- <parameter type-id='b59d7dce' name='size' filepath='drivers/net/phy/mdio_bus.c' line='137' column='1'/>
+ <function-decl name='mdiobus_alloc_size' mangled-name='mdiobus_alloc_size' filepath='drivers/net/phy/mdio_bus.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_alloc_size'>
+ <parameter type-id='b59d7dce' name='size' filepath='drivers/net/phy/mdio_bus.c' line='142' column='1'/>
<return type-id='ff47b24b'/>
</function-decl>
- <function-decl name='mdiobus_free' mangled-name='mdiobus_free' filepath='drivers/net/phy/mdio_bus.c' line='653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_free'>
- <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='653' column='1'/>
+ <function-decl name='mdiobus_free' mangled-name='mdiobus_free' filepath='drivers/net/phy/mdio_bus.c' line='658' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_free'>
+ <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='658' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='mdiobus_get_phy' mangled-name='mdiobus_get_phy' filepath='drivers/net/phy/mdio_bus.c' line='109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_get_phy'>
@@ -146320,26 +146828,26 @@
<parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='109' column='1'/>
<return type-id='7efbcaaf'/>
</function-decl>
- <function-decl name='mdiobus_is_registered_device' mangled-name='mdiobus_is_registered_device' filepath='drivers/net/phy/mdio_bus.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_is_registered_device'>
- <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='123' column='1'/>
- <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='123' column='1'/>
+ <function-decl name='mdiobus_is_registered_device' mangled-name='mdiobus_is_registered_device' filepath='drivers/net/phy/mdio_bus.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_is_registered_device'>
+ <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='128' column='1'/>
+ <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='128' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='mdiobus_read' mangled-name='mdiobus_read' filepath='drivers/net/phy/mdio_bus.c' line='857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_read'>
- <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='857' column='1'/>
- <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='857' column='1'/>
- <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='857' column='1'/>
+ <function-decl name='mdiobus_read' mangled-name='mdiobus_read' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_read'>
+ <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1'/>
+ <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1'/>
+ <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='862' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='mdiobus_unregister' mangled-name='mdiobus_unregister' filepath='drivers/net/phy/mdio_bus.c' line='616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_unregister'>
- <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='616' column='1'/>
+ <function-decl name='mdiobus_unregister' mangled-name='mdiobus_unregister' filepath='drivers/net/phy/mdio_bus.c' line='621' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_unregister'>
+ <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='621' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='mdiobus_write' mangled-name='mdiobus_write' filepath='drivers/net/phy/mdio_bus.c' line='906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_write'>
- <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='906' column='1'/>
- <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='906' column='1'/>
- <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='906' column='1'/>
- <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/mdio_bus.c' line='906' column='1'/>
+ <function-decl name='mdiobus_write' mangled-name='mdiobus_write' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mdiobus_write'>
+ <parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
+ <parameter type-id='95e97e5e' name='addr' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
+ <parameter type-id='19c2251e' name='regnum' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
+ <parameter type-id='1dc6a898' name='val' filepath='drivers/net/phy/mdio_bus.c' line='911' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='media_create_intf_link' mangled-name='media_create_intf_link' filepath='drivers/media/mc/mc-entity.c' line='968' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='media_create_intf_link'>
@@ -146495,7 +147003,7 @@
<return type-id='b50a4934'/>
</function-decl>
<var-decl name='mem_section' type-id='e66f2caa' mangled-name='mem_section' visibility='default' filepath='mm/sparse.c' line='27' column='1' elf-symbol-id='mem_section'/>
- <function-decl name='memblock_end_of_DRAM' mangled-name='memblock_end_of_DRAM' filepath='mm/memblock.c' line='1649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memblock_end_of_DRAM'>
+ <function-decl name='memblock_end_of_DRAM' mangled-name='memblock_end_of_DRAM' filepath='mm/memblock.c' line='1655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memblock_end_of_DRAM'>
<return type-id='2522883d'/>
</function-decl>
<function-decl name='memblock_free' mangled-name='memblock_free' filepath='mm/memblock.c' line='826' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='memblock_free'>
@@ -146674,11 +147182,11 @@
<parameter type-id='807869d3' name='ret_succeeded' filepath='mm/migrate.c' line='1448' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='migrate_swap' mangled-name='migrate_swap' filepath='kernel/sched/core.c' line='3261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='migrate_swap'>
- <parameter type-id='f23e2572' name='cur' filepath='kernel/sched/core.c' line='3261' column='1'/>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3261' column='1'/>
- <parameter type-id='95e97e5e' name='target_cpu' filepath='kernel/sched/core.c' line='3262' column='1'/>
- <parameter type-id='95e97e5e' name='curr_cpu' filepath='kernel/sched/core.c' line='3262' column='1'/>
+ <function-decl name='migrate_swap' mangled-name='migrate_swap' filepath='kernel/sched/core.c' line='3228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='migrate_swap'>
+ <parameter type-id='f23e2572' name='cur' filepath='kernel/sched/core.c' line='3228' column='1'/>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3228' column='1'/>
+ <parameter type-id='95e97e5e' name='target_cpu' filepath='kernel/sched/core.c' line='3229' column='1'/>
+ <parameter type-id='95e97e5e' name='curr_cpu' filepath='kernel/sched/core.c' line='3229' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='mii_check_media' mangled-name='mii_check_media' filepath='drivers/net/mii.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mii_check_media'>
@@ -147082,6 +147590,11 @@
<parameter type-id='7292109c' name='cmd_error' filepath='drivers/mmc/core/mmc_ops.c' line='639' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='mmc_set_blocklen' mangled-name='mmc_set_blocklen' filepath='drivers/mmc/core/core.c' line='1991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_set_blocklen'>
+ <parameter type-id='13d38dcb' name='card' filepath='drivers/mmc/core/core.c' line='1991' column='1'/>
+ <parameter type-id='f0981eeb' name='blocklen' filepath='drivers/mmc/core/core.c' line='1991' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='mmc_set_bus_mode' mangled-name='mmc_set_bus_mode' filepath='drivers/mmc/core/core.c' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mmc_set_bus_mode'>
<parameter type-id='dd575c43' name='host' filepath='drivers/mmc/core/core.c' line='960' column='1'/>
<parameter type-id='f0981eeb' name='mode' filepath='drivers/mmc/core/core.c' line='960' column='1'/>
@@ -147172,12 +147685,12 @@
<parameter type-id='7359adad' name='expires' filepath='kernel/time/timer.c' line='1086' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='module_layout' mangled-name='module_layout' filepath='kernel/module.c' line='4856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='module_layout'>
- <parameter type-id='2730d015' name='mod' filepath='kernel/module.c' line='4856' column='1'/>
- <parameter type-id='3a498c74' name='ver' filepath='kernel/module.c' line='4857' column='1'/>
- <parameter type-id='a7c6e908' name='kp' filepath='kernel/module.c' line='4858' column='1'/>
- <parameter type-id='eefd7061' name='ks' filepath='kernel/module.c' line='4859' column='1'/>
- <parameter type-id='e525e121' name='tp' filepath='kernel/module.c' line='4860' column='1'/>
+ <function-decl name='module_layout' mangled-name='module_layout' filepath='kernel/module.c' line='4872' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='module_layout'>
+ <parameter type-id='2730d015' name='mod' filepath='kernel/module.c' line='4872' column='1'/>
+ <parameter type-id='3a498c74' name='ver' filepath='kernel/module.c' line='4873' column='1'/>
+ <parameter type-id='a7c6e908' name='kp' filepath='kernel/module.c' line='4874' column='1'/>
+ <parameter type-id='eefd7061' name='ks' filepath='kernel/module.c' line='4875' column='1'/>
+ <parameter type-id='e525e121' name='tp' filepath='kernel/module.c' line='4876' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='module_put' mangled-name='module_put' filepath='kernel/module.c' line='1093' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='module_put'>
@@ -147274,20 +147787,20 @@
<parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='283' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='mutex_lock_interruptible' mangled-name='mutex_lock_interruptible' filepath='kernel/locking/mutex.c' line='936' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_lock_interruptible'>
- <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='936' column='1'/>
+ <function-decl name='mutex_lock_interruptible' mangled-name='mutex_lock_interruptible' filepath='kernel/locking/mutex.c' line='946' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_lock_interruptible'>
+ <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='946' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='mutex_lock_killable' mangled-name='mutex_lock_killable' filepath='kernel/locking/mutex.c' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_lock_killable'>
- <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='960' column='1'/>
+ <function-decl name='mutex_lock_killable' mangled-name='mutex_lock_killable' filepath='kernel/locking/mutex.c' line='970' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_lock_killable'>
+ <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='970' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='mutex_trylock' mangled-name='mutex_trylock' filepath='kernel/locking/mutex.c' line='1040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_trylock'>
- <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='1040' column='1'/>
+ <function-decl name='mutex_trylock' mangled-name='mutex_trylock' filepath='kernel/locking/mutex.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_trylock'>
+ <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='1050' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='mutex_unlock' mangled-name='mutex_unlock' filepath='kernel/locking/mutex.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_unlock'>
- <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='538' column='1'/>
+ <function-decl name='mutex_unlock' mangled-name='mutex_unlock' filepath='kernel/locking/mutex.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='mutex_unlock'>
+ <parameter type-id='e0ea832a' name='lock' filepath='kernel/locking/mutex.c' line='548' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='n_tty_ioctl_helper' mangled-name='n_tty_ioctl_helper' filepath='drivers/tty/tty_ioctl.c' line='861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='n_tty_ioctl_helper'>
@@ -147458,6 +147971,18 @@
<parameter type-id='bdf901f8' name='ops' filepath='net/core/dev.c' line='10771' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='netdev_set_num_tc' mangled-name='netdev_set_num_tc' filepath='net/core/dev.c' line='2828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_set_num_tc'>
+ <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='2828' column='1'/>
+ <parameter type-id='f9b06939' name='num_tc' filepath='net/core/dev.c' line='2828' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='netdev_set_tc_queue' mangled-name='netdev_set_tc_queue' filepath='net/core/dev.c' line='2814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_set_tc_queue'>
+ <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='2814' column='1'/>
+ <parameter type-id='f9b06939' name='tc' filepath='net/core/dev.c' line='2814' column='1'/>
+ <parameter type-id='1dc6a898' name='count' filepath='net/core/dev.c' line='2814' column='1'/>
+ <parameter type-id='1dc6a898' name='offset' filepath='net/core/dev.c' line='2814' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='netdev_state_change' mangled-name='netdev_state_change' filepath='net/core/dev.c' line='1389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_state_change'>
<parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='1389' column='1'/>
<return type-id='48b5725f'/>
@@ -147477,6 +148002,11 @@
<parameter type-id='68a2d05b' name='upper_dev' filepath='net/core/dev.c' line='8250' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='netdev_upper_get_next_dev_rcu' mangled-name='netdev_upper_get_next_dev_rcu' filepath='net/core/dev.c' line='7362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_upper_get_next_dev_rcu'>
+ <parameter type-id='68a2d05b' name='dev' filepath='net/core/dev.c' line='7362' column='1'/>
+ <parameter type-id='de160490' name='iter' filepath='net/core/dev.c' line='7363' column='1'/>
+ <return type-id='68a2d05b'/>
+ </function-decl>
<function-decl name='netdev_warn' mangled-name='netdev_warn' filepath='net/core/dev.c' line='11497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netdev_warn'>
<parameter type-id='2ce52478' name='dev' filepath='net/core/dev.c' line='11497' column='1'/>
<parameter type-id='80f4b756' name='fmt' filepath='net/core/dev.c' line='11497' column='1'/>
@@ -147549,43 +148079,43 @@
<parameter type-id='35b28c4f' name='dev_queue' filepath='net/core/dev.c' line='3084' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='netlink_ack' mangled-name='netlink_ack' filepath='net/netlink/af_netlink.c' line='2425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_ack'>
- <parameter type-id='0fbf3cfd' name='in_skb' filepath='net/netlink/af_netlink.c' line='2425' column='1'/>
- <parameter type-id='c2074578' name='nlh' filepath='net/netlink/af_netlink.c' line='2425' column='1'/>
- <parameter type-id='95e97e5e' name='err' filepath='net/netlink/af_netlink.c' line='2425' column='1'/>
- <parameter type-id='f1dc7839' name='extack' filepath='net/netlink/af_netlink.c' line='2426' column='1'/>
+ <function-decl name='netlink_ack' mangled-name='netlink_ack' filepath='net/netlink/af_netlink.c' line='2435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_ack'>
+ <parameter type-id='0fbf3cfd' name='in_skb' filepath='net/netlink/af_netlink.c' line='2435' column='1'/>
+ <parameter type-id='c2074578' name='nlh' filepath='net/netlink/af_netlink.c' line='2435' column='1'/>
+ <parameter type-id='95e97e5e' name='err' filepath='net/netlink/af_netlink.c' line='2435' column='1'/>
+ <parameter type-id='f1dc7839' name='extack' filepath='net/netlink/af_netlink.c' line='2436' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='netlink_broadcast' mangled-name='netlink_broadcast' filepath='net/netlink/af_netlink.c' line='1550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_broadcast'>
- <parameter type-id='f772df6d' name='ssk' filepath='net/netlink/af_netlink.c' line='1550' column='1'/>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='1550' column='1'/>
- <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='1550' column='1'/>
- <parameter type-id='19c2251e' name='group' filepath='net/netlink/af_netlink.c' line='1551' column='1'/>
- <parameter type-id='3eb7c31c' name='allocation' filepath='net/netlink/af_netlink.c' line='1551' column='1'/>
+ <function-decl name='netlink_broadcast' mangled-name='netlink_broadcast' filepath='net/netlink/af_netlink.c' line='1559' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_broadcast'>
+ <parameter type-id='f772df6d' name='ssk' filepath='net/netlink/af_netlink.c' line='1559' column='1'/>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='1559' column='1'/>
+ <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='1559' column='1'/>
+ <parameter type-id='19c2251e' name='group' filepath='net/netlink/af_netlink.c' line='1560' column='1'/>
+ <parameter type-id='3eb7c31c' name='allocation' filepath='net/netlink/af_netlink.c' line='1560' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='netlink_kernel_release' mangled-name='netlink_kernel_release' filepath='net/netlink/af_netlink.c' line='2124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_kernel_release'>
- <parameter type-id='f772df6d' name='sk' filepath='net/netlink/af_netlink.c' line='2124' column='1'/>
+ <function-decl name='netlink_kernel_release' mangled-name='netlink_kernel_release' filepath='net/netlink/af_netlink.c' line='2134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_kernel_release'>
+ <parameter type-id='f772df6d' name='sk' filepath='net/netlink/af_netlink.c' line='2134' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='netlink_net_capable' mangled-name='netlink_net_capable' filepath='net/netlink/af_netlink.c' line='919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_net_capable'>
- <parameter type-id='11f4a000' name='skb' filepath='net/netlink/af_netlink.c' line='919' column='1'/>
- <parameter type-id='95e97e5e' name='cap' filepath='net/netlink/af_netlink.c' line='919' column='1'/>
+ <function-decl name='netlink_net_capable' mangled-name='netlink_net_capable' filepath='net/netlink/af_netlink.c' line='921' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_net_capable'>
+ <parameter type-id='11f4a000' name='skb' filepath='net/netlink/af_netlink.c' line='921' column='1'/>
+ <parameter type-id='95e97e5e' name='cap' filepath='net/netlink/af_netlink.c' line='921' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='netlink_register_notifier' mangled-name='netlink_register_notifier' filepath='net/netlink/af_netlink.c' line='2763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_register_notifier'>
- <parameter type-id='d504f73d' name='nb' filepath='net/netlink/af_netlink.c' line='2763' column='1'/>
+ <function-decl name='netlink_register_notifier' mangled-name='netlink_register_notifier' filepath='net/netlink/af_netlink.c' line='2773' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_register_notifier'>
+ <parameter type-id='d504f73d' name='nb' filepath='net/netlink/af_netlink.c' line='2773' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='netlink_unicast' mangled-name='netlink_unicast' filepath='net/netlink/af_netlink.c' line='1330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_unicast'>
- <parameter type-id='f772df6d' name='ssk' filepath='net/netlink/af_netlink.c' line='1330' column='1'/>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='1330' column='1'/>
- <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='1331' column='1'/>
- <parameter type-id='95e97e5e' name='nonblock' filepath='net/netlink/af_netlink.c' line='1331' column='1'/>
+ <function-decl name='netlink_unicast' mangled-name='netlink_unicast' filepath='net/netlink/af_netlink.c' line='1339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_unicast'>
+ <parameter type-id='f772df6d' name='ssk' filepath='net/netlink/af_netlink.c' line='1339' column='1'/>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/netlink/af_netlink.c' line='1339' column='1'/>
+ <parameter type-id='19c2251e' name='portid' filepath='net/netlink/af_netlink.c' line='1340' column='1'/>
+ <parameter type-id='95e97e5e' name='nonblock' filepath='net/netlink/af_netlink.c' line='1340' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='netlink_unregister_notifier' mangled-name='netlink_unregister_notifier' filepath='net/netlink/af_netlink.c' line='2769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_unregister_notifier'>
- <parameter type-id='d504f73d' name='nb' filepath='net/netlink/af_netlink.c' line='2769' column='1'/>
+ <function-decl name='netlink_unregister_notifier' mangled-name='netlink_unregister_notifier' filepath='net/netlink/af_netlink.c' line='2779' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='netlink_unregister_notifier'>
+ <parameter type-id='d504f73d' name='nb' filepath='net/netlink/af_netlink.c' line='2779' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='new_inode' mangled-name='new_inode' filepath='fs/inode.c' line='960' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='new_inode'>
@@ -147667,62 +148197,62 @@
<parameter type-id='f0981eeb' name='hookcount' filepath='net/netfilter/core.c' line='572' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='nla_append' mangled-name='nla_append' filepath='lib/nlattr.c' line='1113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_append'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1113' column='1'/>
- <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1113' column='1'/>
- <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1113' column='1'/>
+ <function-decl name='nla_append' mangled-name='nla_append' filepath='lib/nlattr.c' line='1116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_append'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1116' column='1'/>
+ <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1116' column='1'/>
+ <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1116' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='nla_find' mangled-name='nla_find' filepath='lib/nlattr.c' line='698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_find'>
- <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='698' column='1'/>
- <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='698' column='1'/>
- <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='698' column='1'/>
+ <function-decl name='nla_find' mangled-name='nla_find' filepath='lib/nlattr.c' line='701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_find'>
+ <parameter type-id='0f2a7ce5' name='head' filepath='lib/nlattr.c' line='701' column='1'/>
+ <parameter type-id='95e97e5e' name='len' filepath='lib/nlattr.c' line='701' column='1'/>
+ <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='701' column='1'/>
<return type-id='6fcaf91e'/>
</function-decl>
- <function-decl name='nla_memcpy' mangled-name='nla_memcpy' filepath='lib/nlattr.c' line='789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_memcpy'>
- <parameter type-id='eaa32e2f' name='dest' filepath='lib/nlattr.c' line='789' column='1'/>
- <parameter type-id='0f2a7ce5' name='src' filepath='lib/nlattr.c' line='789' column='1'/>
- <parameter type-id='95e97e5e' name='count' filepath='lib/nlattr.c' line='789' column='1'/>
+ <function-decl name='nla_memcpy' mangled-name='nla_memcpy' filepath='lib/nlattr.c' line='792' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_memcpy'>
+ <parameter type-id='eaa32e2f' name='dest' filepath='lib/nlattr.c' line='792' column='1'/>
+ <parameter type-id='0f2a7ce5' name='src' filepath='lib/nlattr.c' line='792' column='1'/>
+ <parameter type-id='95e97e5e' name='count' filepath='lib/nlattr.c' line='792' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='nla_put' mangled-name='nla_put' filepath='lib/nlattr.c' line='1047' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1047' column='1'/>
- <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='1047' column='1'/>
- <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1047' column='1'/>
- <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1047' column='1'/>
+ <function-decl name='nla_put' mangled-name='nla_put' filepath='lib/nlattr.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1050' column='1'/>
+ <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='1050' column='1'/>
+ <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1050' column='1'/>
+ <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1050' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='nla_put_64bit' mangled-name='nla_put_64bit' filepath='lib/nlattr.c' line='1068' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put_64bit'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1068' column='1'/>
- <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='1068' column='1'/>
- <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1068' column='1'/>
- <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1069' column='1'/>
- <parameter type-id='95e97e5e' name='padattr' filepath='lib/nlattr.c' line='1069' column='1'/>
+ <function-decl name='nla_put_64bit' mangled-name='nla_put_64bit' filepath='lib/nlattr.c' line='1071' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put_64bit'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1071' column='1'/>
+ <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='1071' column='1'/>
+ <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1071' column='1'/>
+ <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1072' column='1'/>
+ <parameter type-id='95e97e5e' name='padattr' filepath='lib/nlattr.c' line='1072' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='nla_put_nohdr' mangled-name='nla_put_nohdr' filepath='lib/nlattr.c' line='1094' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put_nohdr'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1094' column='1'/>
- <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1094' column='1'/>
- <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1094' column='1'/>
+ <function-decl name='nla_put_nohdr' mangled-name='nla_put_nohdr' filepath='lib/nlattr.c' line='1097' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_put_nohdr'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='1097' column='1'/>
+ <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='1097' column='1'/>
+ <parameter type-id='eaa32e2f' name='data' filepath='lib/nlattr.c' line='1097' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='nla_reserve' mangled-name='nla_reserve' filepath='lib/nlattr.c' line='920' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_reserve'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='920' column='1'/>
- <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='920' column='1'/>
- <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='920' column='1'/>
+ <function-decl name='nla_reserve' mangled-name='nla_reserve' filepath='lib/nlattr.c' line='923' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_reserve'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='923' column='1'/>
+ <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='923' column='1'/>
+ <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='923' column='1'/>
<return type-id='6fcaf91e'/>
</function-decl>
- <function-decl name='nla_reserve_64bit' mangled-name='nla_reserve_64bit' filepath='lib/nlattr.c' line='943' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_reserve_64bit'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='943' column='1'/>
- <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='943' column='1'/>
- <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='943' column='1'/>
- <parameter type-id='95e97e5e' name='padattr' filepath='lib/nlattr.c' line='944' column='1'/>
+ <function-decl name='nla_reserve_64bit' mangled-name='nla_reserve_64bit' filepath='lib/nlattr.c' line='946' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_reserve_64bit'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='lib/nlattr.c' line='946' column='1'/>
+ <parameter type-id='95e97e5e' name='attrtype' filepath='lib/nlattr.c' line='946' column='1'/>
+ <parameter type-id='95e97e5e' name='attrlen' filepath='lib/nlattr.c' line='946' column='1'/>
+ <parameter type-id='95e97e5e' name='padattr' filepath='lib/nlattr.c' line='947' column='1'/>
<return type-id='6fcaf91e'/>
</function-decl>
- <function-decl name='nla_strscpy' mangled-name='nla_strscpy' filepath='lib/nlattr.c' line='725' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_strscpy'>
- <parameter type-id='26a90f95' name='dst' filepath='lib/nlattr.c' line='725' column='1'/>
- <parameter type-id='0f2a7ce5' name='nla' filepath='lib/nlattr.c' line='725' column='1'/>
- <parameter type-id='b59d7dce' name='dstsize' filepath='lib/nlattr.c' line='725' column='1'/>
+ <function-decl name='nla_strscpy' mangled-name='nla_strscpy' filepath='lib/nlattr.c' line='728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nla_strscpy'>
+ <parameter type-id='26a90f95' name='dst' filepath='lib/nlattr.c' line='728' column='1'/>
+ <parameter type-id='0f2a7ce5' name='nla' filepath='lib/nlattr.c' line='728' column='1'/>
+ <parameter type-id='b59d7dce' name='dstsize' filepath='lib/nlattr.c' line='728' column='1'/>
<return type-id='79a0948f'/>
</function-decl>
<function-decl name='no_llseek' mangled-name='no_llseek' filepath='fs/read_write.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='no_llseek'>
@@ -147757,6 +148287,9 @@
<return type-id='95e97e5e'/>
</function-decl>
<var-decl name='nr_cpu_ids' type-id='f0981eeb' mangled-name='nr_cpu_ids' visibility='default' filepath='kernel/smp.c' line='1073' column='1' elf-symbol-id='nr_cpu_ids'/>
+ <function-decl name='nr_free_buffer_pages' mangled-name='nr_free_buffer_pages' filepath='mm/page_alloc.c' line='5918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nr_free_buffer_pages'>
+ <return type-id='7359adad'/>
+ </function-decl>
<function-decl name='nr_ipi_get' mangled-name='nr_ipi_get' filepath='arch/arm64/kernel/smp.c' line='1146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='nr_ipi_get'>
<return type-id='95e97e5e'/>
</function-decl>
@@ -147959,8 +148492,8 @@
<parameter type-id='9a537bbe' name='cpu_node' filepath='drivers/of/base.c' line='401' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='of_cpufreq_cooling_register' mangled-name='of_cpufreq_cooling_register' filepath='drivers/thermal/cpufreq_cooling.c' line='656' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_cpufreq_cooling_register'>
- <parameter type-id='343c3ae4' name='policy' filepath='drivers/thermal/cpufreq_cooling.c' line='656' column='1'/>
+ <function-decl name='of_cpufreq_cooling_register' mangled-name='of_cpufreq_cooling_register' filepath='drivers/thermal/cpufreq_cooling.c' line='653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_cpufreq_cooling_register'>
+ <parameter type-id='343c3ae4' name='policy' filepath='drivers/thermal/cpufreq_cooling.c' line='653' column='1'/>
<return type-id='2feec21f'/>
</function-decl>
<function-decl name='of_css' mangled-name='of_css' filepath='kernel/cgroup/cgroup.c' line='654' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_css'>
@@ -148023,8 +148556,8 @@
<parameter type-id='eaa32e2f' name='data' filepath='drivers/dma/of-dma.c' line='121' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='of_dma_is_coherent' mangled-name='of_dma_is_coherent' filepath='drivers/of/address.c' line='1050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_is_coherent'>
- <parameter type-id='9a537bbe' name='np' filepath='drivers/of/address.c' line='1050' column='1'/>
+ <function-decl name='of_dma_is_coherent' mangled-name='of_dma_is_coherent' filepath='drivers/of/address.c' line='1059' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_is_coherent'>
+ <parameter type-id='9a537bbe' name='np' filepath='drivers/of/address.c' line='1059' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
<function-decl name='of_dma_simple_xlate' mangled-name='of_dma_simple_xlate' filepath='drivers/dma/of-dma.c' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_dma_simple_xlate'>
@@ -148050,10 +148583,10 @@
<parameter type-id='83de9118' name='orientation' filepath='drivers/gpu/drm/drm_panel.c' line='278' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='of_fdt_unflatten_tree' mangled-name='of_fdt_unflatten_tree' filepath='drivers/of/fdt.c' line='455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_fdt_unflatten_tree'>
- <parameter type-id='f9b37274' name='blob' filepath='drivers/of/fdt.c' line='455' column='1'/>
- <parameter type-id='9a537bbe' name='dad' filepath='drivers/of/fdt.c' line='456' column='1'/>
- <parameter type-id='856b89fc' name='mynodes' filepath='drivers/of/fdt.c' line='457' column='1'/>
+ <function-decl name='of_fdt_unflatten_tree' mangled-name='of_fdt_unflatten_tree' filepath='drivers/of/fdt.c' line='454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_fdt_unflatten_tree'>
+ <parameter type-id='f9b37274' name='blob' filepath='drivers/of/fdt.c' line='454' column='1'/>
+ <parameter type-id='9a537bbe' name='dad' filepath='drivers/of/fdt.c' line='455' column='1'/>
+ <parameter type-id='856b89fc' name='mynodes' filepath='drivers/of/fdt.c' line='456' column='1'/>
<return type-id='eaa32e2f'/>
</function-decl>
<function-decl name='of_find_all_nodes' mangled-name='of_find_all_nodes' filepath='drivers/of/base.c' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_find_all_nodes'>
@@ -148385,8 +148918,8 @@
<parameter type-id='0afa6ea3' name='node' filepath='drivers/of/base.c' line='1110' column='1'/>
<return type-id='e5ce629e'/>
</function-decl>
- <function-decl name='of_mdio_find_bus' mangled-name='of_mdio_find_bus' filepath='drivers/net/phy/mdio_bus.c' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_mdio_find_bus'>
- <parameter type-id='9a537bbe' name='mdio_bus_np' filepath='drivers/net/phy/mdio_bus.c' line='427' column='1'/>
+ <function-decl name='of_mdio_find_bus' mangled-name='of_mdio_find_bus' filepath='drivers/net/phy/mdio_bus.c' line='432' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_mdio_find_bus'>
+ <parameter type-id='9a537bbe' name='mdio_bus_np' filepath='drivers/net/phy/mdio_bus.c' line='432' column='1'/>
<return type-id='ff47b24b'/>
</function-decl>
<function-decl name='of_mdiobus_register' mangled-name='of_mdiobus_register' filepath='drivers/net/mdio/of_mdio.c' line='149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_mdiobus_register'>
@@ -148449,6 +148982,10 @@
<parameter type-id='9a537bbe' name='np' filepath='drivers/pci/of.c' line='160' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='of_pci_get_max_link_speed' mangled-name='of_pci_get_max_link_speed' filepath='drivers/pci/of.c' line='619' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pci_get_max_link_speed'>
+ <parameter type-id='9a537bbe' name='node' filepath='drivers/pci/of.c' line='619' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='of_pci_parse_bus_range' mangled-name='of_pci_parse_bus_range' filepath='drivers/pci/of.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_pci_parse_bus_range'>
<parameter type-id='9a537bbe' name='node' filepath='drivers/pci/of.c' line='180' column='1'/>
<parameter type-id='c9d64c0d' name='res' filepath='drivers/pci/of.c' line='180' column='1'/>
@@ -148649,18 +149186,18 @@
<parameter type-id='ddcd89c6' name='prop' filepath='drivers/of/base.c' line='1859' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='of_reserved_mem_device_init_by_idx' mangled-name='of_reserved_mem_device_init_by_idx' filepath='drivers/of/of_reserved_mem.c' line='330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_device_init_by_idx'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/of_reserved_mem.c' line='330' column='1'/>
- <parameter type-id='9a537bbe' name='np' filepath='drivers/of/of_reserved_mem.c' line='331' column='1'/>
- <parameter type-id='95e97e5e' name='idx' filepath='drivers/of/of_reserved_mem.c' line='331' column='1'/>
+ <function-decl name='of_reserved_mem_device_init_by_idx' mangled-name='of_reserved_mem_device_init_by_idx' filepath='drivers/of/of_reserved_mem.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_device_init_by_idx'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/of_reserved_mem.c' line='331' column='1'/>
+ <parameter type-id='9a537bbe' name='np' filepath='drivers/of/of_reserved_mem.c' line='332' column='1'/>
+ <parameter type-id='95e97e5e' name='idx' filepath='drivers/of/of_reserved_mem.c' line='332' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='of_reserved_mem_device_release' mangled-name='of_reserved_mem_device_release' filepath='drivers/of/of_reserved_mem.c' line='404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_device_release'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/of_reserved_mem.c' line='404' column='1'/>
+ <function-decl name='of_reserved_mem_device_release' mangled-name='of_reserved_mem_device_release' filepath='drivers/of/of_reserved_mem.c' line='405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_device_release'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/of/of_reserved_mem.c' line='405' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='of_reserved_mem_lookup' mangled-name='of_reserved_mem_lookup' filepath='drivers/of/of_reserved_mem.c' line='434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_lookup'>
- <parameter type-id='9a537bbe' name='np' filepath='drivers/of/of_reserved_mem.c' line='434' column='1'/>
+ <function-decl name='of_reserved_mem_lookup' mangled-name='of_reserved_mem_lookup' filepath='drivers/of/of_reserved_mem.c' line='435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reserved_mem_lookup'>
+ <parameter type-id='9a537bbe' name='np' filepath='drivers/of/of_reserved_mem.c' line='435' column='1'/>
<return type-id='f7f718cb'/>
</function-decl>
<function-decl name='of_reset_control_array_get' mangled-name='of_reset_control_array_get' filepath='drivers/reset/core.c' line='1161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='of_reset_control_array_get'>
@@ -148765,15 +149302,15 @@
<parameter type-id='95e97e5e' name='err' filepath='mm/filemap.c' line='1616' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='page_frag_alloc_align' mangled-name='page_frag_alloc_align' filepath='mm/page_alloc.c' line='5700' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_frag_alloc_align'>
- <parameter type-id='34e4f518' name='nc' filepath='mm/page_alloc.c' line='5700' column='1'/>
- <parameter type-id='f0981eeb' name='fragsz' filepath='mm/page_alloc.c' line='5701' column='1'/>
- <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='5701' column='1'/>
- <parameter type-id='f0981eeb' name='align_mask' filepath='mm/page_alloc.c' line='5702' column='1'/>
+ <function-decl name='page_frag_alloc_align' mangled-name='page_frag_alloc_align' filepath='mm/page_alloc.c' line='5703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_frag_alloc_align'>
+ <parameter type-id='34e4f518' name='nc' filepath='mm/page_alloc.c' line='5703' column='1'/>
+ <parameter type-id='f0981eeb' name='fragsz' filepath='mm/page_alloc.c' line='5704' column='1'/>
+ <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/page_alloc.c' line='5704' column='1'/>
+ <parameter type-id='f0981eeb' name='align_mask' filepath='mm/page_alloc.c' line='5705' column='1'/>
<return type-id='eaa32e2f'/>
</function-decl>
- <function-decl name='page_frag_free' mangled-name='page_frag_free' filepath='mm/page_alloc.c' line='5776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_frag_free'>
- <parameter type-id='eaa32e2f' name='addr' filepath='mm/page_alloc.c' line='5776' column='1'/>
+ <function-decl name='page_frag_free' mangled-name='page_frag_free' filepath='mm/page_alloc.c' line='5779' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_frag_free'>
+ <parameter type-id='eaa32e2f' name='addr' filepath='mm/page_alloc.c' line='5779' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='page_get_link' mangled-name='page_get_link' filepath='fs/namei.c' line='4963' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='page_get_link'>
@@ -148886,13 +149423,13 @@
<parameter type-id='933bf462' name='tag' filepath='mm/swap.c' line='1158' column='1'/>
<return type-id='f0981eeb'/>
</function-decl>
- <function-decl name='panic' mangled-name='panic' filepath='kernel/panic.c' line='178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='panic'>
- <parameter type-id='80f4b756' name='fmt' filepath='kernel/panic.c' line='178' column='1'/>
+ <function-decl name='panic' mangled-name='panic' filepath='kernel/panic.c' line='245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='panic'>
+ <parameter type-id='80f4b756' name='fmt' filepath='kernel/panic.c' line='245' column='1'/>
<parameter is-variadic='yes'/>
<return type-id='48b5725f'/>
</function-decl>
- <var-decl name='panic_notifier_list' type-id='dbd58f6e' mangled-name='panic_notifier_list' visibility='default' filepath='kernel/panic.c' line='70' column='1' elf-symbol-id='panic_notifier_list'/>
- <var-decl name='panic_timeout' type-id='95e97e5e' mangled-name='panic_timeout' visibility='default' filepath='kernel/panic.c' line='59' column='1' elf-symbol-id='panic_timeout'/>
+ <var-decl name='panic_notifier_list' type-id='dbd58f6e' mangled-name='panic_notifier_list' visibility='default' filepath='kernel/panic.c' line='74' column='1' elf-symbol-id='panic_notifier_list'/>
+ <var-decl name='panic_timeout' type-id='95e97e5e' mangled-name='panic_timeout' visibility='default' filepath='kernel/panic.c' line='63' column='1' elf-symbol-id='panic_timeout'/>
<var-decl name='param_array_ops' type-id='95d0d4e8' mangled-name='param_array_ops' visibility='default' filepath='kernel/params.c' line='503' column='1' elf-symbol-id='param_array_ops'/>
<function-decl name='param_get_bool' mangled-name='param_get_bool' filepath='kernel/params.c' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='param_get_bool'>
<parameter type-id='26a90f95' name='buffer' filepath='kernel/params.c' line='317' column='1'/>
@@ -149021,6 +149558,10 @@
<parameter type-id='d1feb554' name='bus' filepath='drivers/pci/setup-bus.c' line='2228' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='pci_ats_supported' mangled-name='pci_ats_supported' filepath='drivers/pci/ats.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_ats_supported'>
+ <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/ats.c' line='40' column='1'/>
+ <return type-id='b50a4934'/>
+ </function-decl>
<function-decl name='pci_bus_add_devices' mangled-name='pci_bus_add_devices' filepath='drivers/pci/bus.c' line='338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_bus_add_devices'>
<parameter type-id='b425394d' name='bus' filepath='drivers/pci/bus.c' line='338' column='1'/>
<return type-id='48b5725f'/>
@@ -149077,14 +149618,18 @@
<parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci-driver.c' line='1506' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='pci_device_group' mangled-name='pci_device_group' filepath='drivers/iommu/iommu.c' line='1448' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_device_group'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1448' column='1'/>
+ <function-decl name='pci_device_group' mangled-name='pci_device_group' filepath='drivers/iommu/iommu.c' line='1464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_device_group'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='1464' column='1'/>
<return type-id='0b19fc54'/>
</function-decl>
<function-decl name='pci_device_is_present' mangled-name='pci_device_is_present' filepath='drivers/pci/pci.c' line='6382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_device_is_present'>
<parameter type-id='85196e3f' name='pdev' filepath='drivers/pci/pci.c' line='6382' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
+ <function-decl name='pci_disable_ats' mangled-name='pci_disable_ats' filepath='drivers/pci/ats.c' line='94' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_disable_ats'>
+ <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/ats.c' line='94' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='pci_disable_device' mangled-name='pci_disable_device' filepath='drivers/pci/pci.c' line='2174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_disable_device'>
<parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='2174' column='1'/>
<return type-id='48b5725f'/>
@@ -149115,6 +149660,11 @@
<parameter type-id='19c2251e' name='cap_mask' filepath='drivers/pci/pci.c' line='3728' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='pci_enable_ats' mangled-name='pci_enable_ats' filepath='drivers/pci/ats.c' line='56' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_ats'>
+ <parameter type-id='85196e3f' name='dev' filepath='drivers/pci/ats.c' line='56' column='1'/>
+ <parameter type-id='95e97e5e' name='ps' filepath='drivers/pci/ats.c' line='56' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='pci_enable_device' mangled-name='pci_enable_device' filepath='drivers/pci/pci.c' line='1981' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pci_enable_device'>
<parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='1981' column='1'/>
<return type-id='95e97e5e'/>
@@ -149623,6 +150173,7 @@
<parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='6004' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <var-decl name='pcie_link_speed' type-id='32625dbc' mangled-name='pcie_link_speed' visibility='default' filepath='drivers/pci/probe.c' line='675' column='1' elf-symbol-id='pcie_link_speed'/>
<function-decl name='pcie_set_mps' mangled-name='pcie_set_mps' filepath='drivers/pci/pci.c' line='6022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pcie_set_mps'>
<parameter type-id='85196e3f' name='dev' filepath='drivers/pci/pci.c' line='6022' column='1'/>
<parameter type-id='95e97e5e' name='mps' filepath='drivers/pci/pci.c' line='6022' column='1'/>
@@ -149820,6 +150371,7 @@
<parameter type-id='7efbcaaf' name='phydev' filepath='drivers/net/phy/phy_device.c' line='1206' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <var-decl name='phy_basic_features' type-id='f05e8e77' mangled-name='phy_basic_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='41' column='1' elf-symbol-id='phy_basic_features'/>
<var-decl name='phy_basic_t1_features' type-id='f05e8e77' mangled-name='phy_basic_t1_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='44' column='1' elf-symbol-id='phy_basic_t1_features'/>
<function-decl name='phy_calibrate' mangled-name='phy_calibrate' filepath='drivers/phy/phy-core.c' line='437' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_calibrate'>
<parameter type-id='503ff1ba' name='phy' filepath='drivers/phy/phy-core.c' line='437' column='1'/>
@@ -149925,6 +150477,7 @@
<parameter type-id='ff47b24b' name='bus' filepath='drivers/net/phy/phy_device.c' line='998' column='1'/>
<return type-id='7efbcaaf'/>
</function-decl>
+ <var-decl name='phy_gbit_features' type-id='f05e8e77' mangled-name='phy_gbit_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='47' column='1' elf-symbol-id='phy_gbit_features'/>
<var-decl name='phy_gbit_fibre_features' type-id='f05e8e77' mangled-name='phy_gbit_fibre_features' visibility='default' filepath='drivers/net/phy/phy_device.c' line='50' column='1' elf-symbol-id='phy_gbit_fibre_features'/>
<function-decl name='phy_get' mangled-name='phy_get' filepath='drivers/phy/phy-core.c' line='694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phy_get'>
<parameter type-id='fa0b179b' name='dev' filepath='drivers/phy/phy-core.c' line='694' column='1'/>
@@ -150193,67 +150746,67 @@
<parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='938' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='phylink_disconnect_phy' mangled-name='phylink_disconnect_phy' filepath='drivers/net/phy/phylink.c' line='1186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_disconnect_phy'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1186' column='1'/>
+ <function-decl name='phylink_disconnect_phy' mangled-name='phylink_disconnect_phy' filepath='drivers/net/phy/phylink.c' line='1185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_disconnect_phy'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1185' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='phylink_ethtool_get_eee' mangled-name='phylink_ethtool_get_eee' filepath='drivers/net/phy/phylink.c' line='1864' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_eee'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1864' column='1'/>
- <parameter type-id='eced47f6' name='eee' filepath='drivers/net/phy/phylink.c' line='1864' column='1'/>
+ <function-decl name='phylink_ethtool_get_eee' mangled-name='phylink_ethtool_get_eee' filepath='drivers/net/phy/phylink.c' line='1863' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_eee'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1863' column='1'/>
+ <parameter type-id='eced47f6' name='eee' filepath='drivers/net/phy/phylink.c' line='1863' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='phylink_ethtool_get_pauseparam' mangled-name='phylink_ethtool_get_pauseparam' filepath='drivers/net/phy/phylink.c' line='1721' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_pauseparam'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1721' column='1'/>
- <parameter type-id='ab38066e' name='pause' filepath='drivers/net/phy/phylink.c' line='1722' column='1'/>
+ <function-decl name='phylink_ethtool_get_pauseparam' mangled-name='phylink_ethtool_get_pauseparam' filepath='drivers/net/phy/phylink.c' line='1720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_pauseparam'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1720' column='1'/>
+ <parameter type-id='ab38066e' name='pause' filepath='drivers/net/phy/phylink.c' line='1721' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='phylink_ethtool_get_wol' mangled-name='phylink_ethtool_get_wol' filepath='drivers/net/phy/phylink.c' line='1422' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_wol'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1422' column='1'/>
- <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phylink.c' line='1422' column='1'/>
+ <function-decl name='phylink_ethtool_get_wol' mangled-name='phylink_ethtool_get_wol' filepath='drivers/net/phy/phylink.c' line='1421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_get_wol'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1421' column='1'/>
+ <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phylink.c' line='1421' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='phylink_ethtool_ksettings_get' mangled-name='phylink_ethtool_ksettings_get' filepath='drivers/net/phy/phylink.c' line='1489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_ksettings_get'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1489' column='1'/>
- <parameter type-id='70de91e2' name='kset' filepath='drivers/net/phy/phylink.c' line='1490' column='1'/>
+ <function-decl name='phylink_ethtool_ksettings_get' mangled-name='phylink_ethtool_ksettings_get' filepath='drivers/net/phy/phylink.c' line='1488' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_ksettings_get'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1488' column='1'/>
+ <parameter type-id='70de91e2' name='kset' filepath='drivers/net/phy/phylink.c' line='1489' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='phylink_ethtool_ksettings_set' mangled-name='phylink_ethtool_ksettings_set' filepath='drivers/net/phy/phylink.c' line='1539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_ksettings_set'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1539' column='1'/>
- <parameter type-id='b2c34f11' name='kset' filepath='drivers/net/phy/phylink.c' line='1540' column='1'/>
+ <function-decl name='phylink_ethtool_ksettings_set' mangled-name='phylink_ethtool_ksettings_set' filepath='drivers/net/phy/phylink.c' line='1538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_ksettings_set'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1538' column='1'/>
+ <parameter type-id='b2c34f11' name='kset' filepath='drivers/net/phy/phylink.c' line='1539' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='phylink_ethtool_nway_reset' mangled-name='phylink_ethtool_nway_reset' filepath='drivers/net/phy/phylink.c' line='1702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_nway_reset'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1702' column='1'/>
+ <function-decl name='phylink_ethtool_nway_reset' mangled-name='phylink_ethtool_nway_reset' filepath='drivers/net/phy/phylink.c' line='1701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_nway_reset'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1701' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='phylink_ethtool_set_eee' mangled-name='phylink_ethtool_set_eee' filepath='drivers/net/phy/phylink.c' line='1882' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_eee'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1882' column='1'/>
- <parameter type-id='eced47f6' name='eee' filepath='drivers/net/phy/phylink.c' line='1882' column='1'/>
+ <function-decl name='phylink_ethtool_set_eee' mangled-name='phylink_ethtool_set_eee' filepath='drivers/net/phy/phylink.c' line='1881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_eee'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1881' column='1'/>
+ <parameter type-id='eced47f6' name='eee' filepath='drivers/net/phy/phylink.c' line='1881' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='phylink_ethtool_set_pauseparam' mangled-name='phylink_ethtool_set_pauseparam' filepath='drivers/net/phy/phylink.c' line='1737' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_pauseparam'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1737' column='1'/>
- <parameter type-id='ab38066e' name='pause' filepath='drivers/net/phy/phylink.c' line='1738' column='1'/>
+ <function-decl name='phylink_ethtool_set_pauseparam' mangled-name='phylink_ethtool_set_pauseparam' filepath='drivers/net/phy/phylink.c' line='1736' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_pauseparam'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1736' column='1'/>
+ <parameter type-id='ab38066e' name='pause' filepath='drivers/net/phy/phylink.c' line='1737' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='phylink_ethtool_set_wol' mangled-name='phylink_ethtool_set_wol' filepath='drivers/net/phy/phylink.c' line='1445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_wol'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1445' column='1'/>
- <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phylink.c' line='1445' column='1'/>
+ <function-decl name='phylink_ethtool_set_wol' mangled-name='phylink_ethtool_set_wol' filepath='drivers/net/phy/phylink.c' line='1444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_ethtool_set_wol'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1444' column='1'/>
+ <parameter type-id='fde1bbcb' name='wol' filepath='drivers/net/phy/phylink.c' line='1444' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='phylink_get_eee_err' mangled-name='phylink_get_eee_err' filepath='drivers/net/phy/phylink.c' line='1828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_get_eee_err'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1828' column='1'/>
+ <function-decl name='phylink_get_eee_err' mangled-name='phylink_get_eee_err' filepath='drivers/net/phy/phylink.c' line='1827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_get_eee_err'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1827' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='phylink_mac_change' mangled-name='phylink_mac_change' filepath='drivers/net/phy/phylink.c' line='1214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_mac_change'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1214' column='1'/>
- <parameter type-id='b50a4934' name='up' filepath='drivers/net/phy/phylink.c' line='1214' column='1'/>
+ <function-decl name='phylink_mac_change' mangled-name='phylink_mac_change' filepath='drivers/net/phy/phylink.c' line='1213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_mac_change'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1213' column='1'/>
+ <parameter type-id='b50a4934' name='up' filepath='drivers/net/phy/phylink.c' line='1213' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='phylink_mii_ioctl' mangled-name='phylink_mii_ioctl' filepath='drivers/net/phy/phylink.c' line='2065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_mii_ioctl'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2065' column='1'/>
- <parameter type-id='d494b97c' name='ifr' filepath='drivers/net/phy/phylink.c' line='2065' column='1'/>
- <parameter type-id='95e97e5e' name='cmd' filepath='drivers/net/phy/phylink.c' line='2065' column='1'/>
+ <function-decl name='phylink_mii_ioctl' mangled-name='phylink_mii_ioctl' filepath='drivers/net/phy/phylink.c' line='2064' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_mii_ioctl'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2064' column='1'/>
+ <parameter type-id='d494b97c' name='ifr' filepath='drivers/net/phy/phylink.c' line='2064' column='1'/>
+ <parameter type-id='95e97e5e' name='cmd' filepath='drivers/net/phy/phylink.c' line='2064' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='phylink_of_phy_connect' mangled-name='phylink_of_phy_connect' filepath='drivers/net/phy/phylink.c' line='1119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_of_phy_connect'>
@@ -150262,8 +150815,8 @@
<parameter type-id='19c2251e' name='flags' filepath='drivers/net/phy/phylink.c' line='1120' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='phylink_resume' mangled-name='phylink_resume' filepath='drivers/net/phy/phylink.c' line='1382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_resume'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1382' column='1'/>
+ <function-decl name='phylink_resume' mangled-name='phylink_resume' filepath='drivers/net/phy/phylink.c' line='1381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_resume'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1381' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='phylink_set_pcs' mangled-name='phylink_set_pcs' filepath='drivers/net/phy/phylink.c' line='922' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_set_pcs'>
@@ -150275,26 +150828,26 @@
<parameter type-id='1d2c2b85' name='mask' filepath='drivers/net/phy/phylink.c' line='124' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='phylink_speed_down' mangled-name='phylink_speed_down' filepath='drivers/net/phy/phylink.c' line='2137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_speed_down'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2137' column='1'/>
- <parameter type-id='b50a4934' name='sync' filepath='drivers/net/phy/phylink.c' line='2137' column='1'/>
+ <function-decl name='phylink_speed_down' mangled-name='phylink_speed_down' filepath='drivers/net/phy/phylink.c' line='2136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_speed_down'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2136' column='1'/>
+ <parameter type-id='b50a4934' name='sync' filepath='drivers/net/phy/phylink.c' line='2136' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='phylink_speed_up' mangled-name='phylink_speed_up' filepath='drivers/net/phy/phylink.c' line='2160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_speed_up'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2160' column='1'/>
+ <function-decl name='phylink_speed_up' mangled-name='phylink_speed_up' filepath='drivers/net/phy/phylink.c' line='2159' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_speed_up'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='2159' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='phylink_start' mangled-name='phylink_start' filepath='drivers/net/phy/phylink.c' line='1240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_start'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1240' column='1'/>
+ <function-decl name='phylink_start' mangled-name='phylink_start' filepath='drivers/net/phy/phylink.c' line='1239' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_start'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1239' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='phylink_stop' mangled-name='phylink_stop' filepath='drivers/net/phy/phylink.c' line='1314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_stop'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1314' column='1'/>
+ <function-decl name='phylink_stop' mangled-name='phylink_stop' filepath='drivers/net/phy/phylink.c' line='1313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_stop'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1313' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='phylink_suspend' mangled-name='phylink_suspend' filepath='drivers/net/phy/phylink.c' line='1345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_suspend'>
- <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1345' column='1'/>
- <parameter type-id='b50a4934' name='mac_wol' filepath='drivers/net/phy/phylink.c' line='1345' column='1'/>
+ <function-decl name='phylink_suspend' mangled-name='phylink_suspend' filepath='drivers/net/phy/phylink.c' line='1344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='phylink_suspend'>
+ <parameter type-id='56f3c6ca' name='pl' filepath='drivers/net/phy/phylink.c' line='1344' column='1'/>
+ <parameter type-id='b50a4934' name='mac_wol' filepath='drivers/net/phy/phylink.c' line='1344' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='pick_highest_pushable_task' mangled-name='pick_highest_pushable_task' filepath='kernel/sched/rt.c' line='1793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pick_highest_pushable_task'>
@@ -150302,8 +150855,8 @@
<parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/rt.c' line='1793' column='1'/>
<return type-id='f23e2572'/>
</function-decl>
- <function-decl name='pick_migrate_task' mangled-name='pick_migrate_task' filepath='kernel/sched/core.c' line='9102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pick_migrate_task'>
- <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='9102' column='1'/>
+ <function-decl name='pick_migrate_task' mangled-name='pick_migrate_task' filepath='kernel/sched/core.c' line='9028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pick_migrate_task'>
+ <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='9028' column='1'/>
<return type-id='f23e2572'/>
</function-decl>
<function-decl name='pid_nr_ns' mangled-name='pid_nr_ns' filepath='kernel/pid.c' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pid_nr_ns'>
@@ -151127,10 +151680,10 @@
<function-decl name='prandom_u32' mangled-name='prandom_u32' filepath='lib/random32.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='prandom_u32'>
<return type-id='19c2251e'/>
</function-decl>
- <function-decl name='preempt_schedule' mangled-name='preempt_schedule' filepath='kernel/sched/core.c' line='6728' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='preempt_schedule'>
+ <function-decl name='preempt_schedule' mangled-name='preempt_schedule' filepath='kernel/sched/core.c' line='6695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='preempt_schedule'>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='preempt_schedule_notrace' mangled-name='preempt_schedule_notrace' filepath='kernel/sched/core.c' line='6762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='preempt_schedule_notrace'>
+ <function-decl name='preempt_schedule_notrace' mangled-name='preempt_schedule_notrace' filepath='kernel/sched/core.c' line='6729' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='preempt_schedule_notrace'>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='prepare_kernel_cred' mangled-name='prepare_kernel_cred' filepath='kernel/cred.c' line='718' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='prepare_kernel_cred'>
@@ -151340,7 +151893,7 @@
<parameter type-id='f9b06939' name='command' filepath='drivers/input/serio/libps2.c' line='347' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <var-decl name='psi_system' type-id='12878ab3' mangled-name='psi_system' visibility='default' filepath='kernel/sched/psi.c' line='186' column='1' elf-symbol-id='psi_system'/>
+ <var-decl name='psi_system' type-id='12878ab3' mangled-name='psi_system' visibility='default' filepath='kernel/sched/psi.c' line='188' column='1' elf-symbol-id='psi_system'/>
<function-decl name='pskb_expand_head' mangled-name='pskb_expand_head' filepath='net/core/skbuff.c' line='1711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pskb_expand_head'>
<parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='1711' column='1'/>
<parameter type-id='95e97e5e' name='nhead' filepath='net/core/skbuff.c' line='1711' column='1'/>
@@ -151620,13 +152173,13 @@
<parameter type-id='d504f73d' name='n' filepath='kernel/notifier.c' line='358' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='raw_spin_rq_lock_nested' mangled-name='raw_spin_rq_lock_nested' filepath='kernel/sched/core.c' line='485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_spin_rq_lock_nested'>
- <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='485' column='1'/>
- <parameter type-id='95e97e5e' name='subclass' filepath='kernel/sched/core.c' line='485' column='1'/>
+ <function-decl name='raw_spin_rq_lock_nested' mangled-name='raw_spin_rq_lock_nested' filepath='kernel/sched/core.c' line='482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_spin_rq_lock_nested'>
+ <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='482' column='1'/>
+ <parameter type-id='95e97e5e' name='subclass' filepath='kernel/sched/core.c' line='482' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='raw_spin_rq_unlock' mangled-name='raw_spin_rq_unlock' filepath='kernel/sched/core.c' line='535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_spin_rq_unlock'>
- <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='535' column='1'/>
+ <function-decl name='raw_spin_rq_unlock' mangled-name='raw_spin_rq_unlock' filepath='kernel/sched/core.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='raw_spin_rq_unlock'>
+ <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='532' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<var-decl name='raw_v4_hashinfo' type-id='51ee3086' mangled-name='raw_v4_hashinfo' visibility='default' filepath='net/ipv4/raw.c' line='88' column='1' elf-symbol-id='raw_v4_hashinfo'/>
@@ -151712,7 +152265,7 @@
<function-decl name='rcu_barrier_tasks' mangled-name='rcu_barrier_tasks' filepath='kernel/rcu/tasks.h' line='587' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_tasks'>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='rcu_barrier_tasks_trace' mangled-name='rcu_barrier_tasks_trace' filepath='kernel/rcu/tasks.h' line='1262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_tasks_trace'>
+ <function-decl name='rcu_barrier_tasks_trace' mangled-name='rcu_barrier_tasks_trace' filepath='kernel/rcu/tasks.h' line='1248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_barrier_tasks_trace'>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='rcu_bind_current_to_nocb' mangled-name='rcu_bind_current_to_nocb' filepath='kernel/rcu/tree_nocb.h' line='1303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcu_bind_current_to_nocb'>
@@ -151788,8 +152341,8 @@
<parameter type-id='1d2c2b85' name='gp_seq' filepath='kernel/rcu/tree.c' line='588' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='rcuwait_wake_up' mangled-name='rcuwait_wake_up' filepath='kernel/exit.c' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcuwait_wake_up'>
- <parameter type-id='9b25216e' name='w' filepath='kernel/exit.c' line='233' column='1'/>
+ <function-decl name='rcuwait_wake_up' mangled-name='rcuwait_wake_up' filepath='kernel/exit.c' line='280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rcuwait_wake_up'>
+ <parameter type-id='9b25216e' name='w' filepath='kernel/exit.c' line='280' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='rdev_get_dev' mangled-name='rdev_get_dev' filepath='drivers/regulator/core.c' line='5746' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rdev_get_dev'>
@@ -151873,9 +152426,9 @@
<parameter type-id='343c3ae4' name='policy' filepath='drivers/cpufreq/cpufreq.c' line='1146' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='regcache_cache_bypass' mangled-name='regcache_cache_bypass' filepath='drivers/base/regmap/regcache.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_cache_bypass'>
- <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='538' column='1'/>
- <parameter type-id='b50a4934' name='enable' filepath='drivers/base/regmap/regcache.c' line='538' column='1'/>
+ <function-decl name='regcache_cache_bypass' mangled-name='regcache_cache_bypass' filepath='drivers/base/regmap/regcache.c' line='539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_cache_bypass'>
+ <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='539' column='1'/>
+ <parameter type-id='b50a4934' name='enable' filepath='drivers/base/regmap/regcache.c' line='539' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='regcache_cache_only' mangled-name='regcache_cache_only' filepath='drivers/base/regmap/regcache.c' line='495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_cache_only'>
@@ -151889,8 +152442,8 @@
<parameter type-id='f0981eeb' name='max' filepath='drivers/base/regmap/regcache.c' line='464' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='regcache_mark_dirty' mangled-name='regcache_mark_dirty' filepath='drivers/base/regmap/regcache.c' line='518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_mark_dirty'>
- <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='518' column='1'/>
+ <function-decl name='regcache_mark_dirty' mangled-name='regcache_mark_dirty' filepath='drivers/base/regmap/regcache.c' line='519' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_mark_dirty'>
+ <parameter type-id='29af9a71' name='map' filepath='drivers/base/regmap/regcache.c' line='519' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='regcache_sync' mangled-name='regcache_sync' filepath='drivers/base/regmap/regcache.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='regcache_sync'>
@@ -152024,13 +152577,13 @@
<parameter type-id='cbd24a98' name='ops' filepath='drivers/base/syscore.c' line='22' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='register_sysctl' mangled-name='register_sysctl' filepath='fs/proc/proc_sysctl.c' line='1382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_sysctl'>
- <parameter type-id='80f4b756' name='path' filepath='fs/proc/proc_sysctl.c' line='1382' column='1'/>
- <parameter type-id='631dc3c1' name='table' filepath='fs/proc/proc_sysctl.c' line='1382' column='1'/>
+ <function-decl name='register_sysctl' mangled-name='register_sysctl' filepath='fs/proc/proc_sysctl.c' line='1383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_sysctl'>
+ <parameter type-id='80f4b756' name='path' filepath='fs/proc/proc_sysctl.c' line='1383' column='1'/>
+ <parameter type-id='631dc3c1' name='table' filepath='fs/proc/proc_sysctl.c' line='1383' column='1'/>
<return type-id='11b101bb'/>
</function-decl>
- <function-decl name='register_sysctl_table' mangled-name='register_sysctl_table' filepath='fs/proc/proc_sysctl.c' line='1594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_sysctl_table'>
- <parameter type-id='631dc3c1' name='table' filepath='fs/proc/proc_sysctl.c' line='1594' column='1'/>
+ <function-decl name='register_sysctl_table' mangled-name='register_sysctl_table' filepath='fs/proc/proc_sysctl.c' line='1627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_sysctl_table'>
+ <parameter type-id='631dc3c1' name='table' filepath='fs/proc/proc_sysctl.c' line='1627' column='1'/>
<return type-id='11b101bb'/>
</function-decl>
<function-decl name='register_tcf_proto_ops' mangled-name='register_tcf_proto_ops' filepath='net/sched/cls_api.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='register_tcf_proto_ops'>
@@ -152486,12 +153039,12 @@
<parameter type-id='f772df6d' name='sk' filepath='net/core/sock.c' line='3234' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='remap_pfn_range' mangled-name='remap_pfn_range' filepath='mm/memory.c' line='2498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remap_pfn_range'>
- <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2498' column='1'/>
- <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2498' column='1'/>
- <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2499' column='1'/>
- <parameter type-id='7359adad' name='size' filepath='mm/memory.c' line='2499' column='1'/>
- <parameter type-id='2e2dcbd3' name='prot' filepath='mm/memory.c' line='2499' column='1'/>
+ <function-decl name='remap_pfn_range' mangled-name='remap_pfn_range' filepath='mm/memory.c' line='2511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remap_pfn_range'>
+ <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2511' column='1'/>
+ <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2511' column='1'/>
+ <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2512' column='1'/>
+ <parameter type-id='7359adad' name='size' filepath='mm/memory.c' line='2512' column='1'/>
+ <parameter type-id='2e2dcbd3' name='prot' filepath='mm/memory.c' line='2512' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='remap_vmalloc_range' mangled-name='remap_vmalloc_range' filepath='mm/vmalloc.c' line='3529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='remap_vmalloc_range'>
@@ -152524,11 +153077,11 @@
<parameter type-id='db9d03e3' name='wq_entry' filepath='kernel/sched/wait.c' line='52' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='report_iommu_fault' mangled-name='report_iommu_fault' filepath='drivers/iommu/iommu.c' line='2755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='report_iommu_fault'>
- <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2755' column='1'/>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2755' column='1'/>
- <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2756' column='1'/>
- <parameter type-id='95e97e5e' name='flags' filepath='drivers/iommu/iommu.c' line='2756' column='1'/>
+ <function-decl name='report_iommu_fault' mangled-name='report_iommu_fault' filepath='drivers/iommu/iommu.c' line='2771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='report_iommu_fault'>
+ <parameter type-id='bff05edb' name='domain' filepath='drivers/iommu/iommu.c' line='2771' column='1'/>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/iommu/iommu.c' line='2771' column='1'/>
+ <parameter type-id='7359adad' name='iova' filepath='drivers/iommu/iommu.c' line='2772' column='1'/>
+ <parameter type-id='95e97e5e' name='flags' filepath='drivers/iommu/iommu.c' line='2772' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='request_any_context_irq' mangled-name='request_any_context_irq' filepath='kernel/irq/manage.c' line='2255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='request_any_context_irq'>
@@ -152585,8 +153138,8 @@
<parameter type-id='eaa32e2f' name='dev_id' filepath='kernel/irq/manage.c' line='2149' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='resched_curr' mangled-name='resched_curr' filepath='kernel/sched/core.c' line='988' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='resched_curr'>
- <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='988' column='1'/>
+ <function-decl name='resched_curr' mangled-name='resched_curr' filepath='kernel/sched/core.c' line='985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='resched_curr'>
+ <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='985' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<var-decl name='reservation_ww_class' type-id='f0dc3c34' mangled-name='reservation_ww_class' visibility='default' filepath='drivers/dma-buf/dma-resv.c' line='53' column='1' elf-symbol-id='reservation_ww_class'/>
@@ -152708,7 +153261,7 @@
<function-decl name='rng_is_initialized' mangled-name='rng_is_initialized' filepath='drivers/char/random.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rng_is_initialized'>
<return type-id='b50a4934'/>
</function-decl>
- <var-decl name='root_task_group' type-id='2d863538' mangled-name='root_task_group' visibility='default' filepath='kernel/sched/core.c' line='9597' column='1' elf-symbol-id='root_task_group'/>
+ <var-decl name='root_task_group' type-id='2d863538' mangled-name='root_task_group' visibility='default' filepath='kernel/sched/core.c' line='9523' column='1' elf-symbol-id='root_task_group'/>
<function-decl name='round_jiffies' mangled-name='round_jiffies' filepath='kernel/time/timer.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='round_jiffies'>
<parameter type-id='7359adad' name='j' filepath='kernel/time/timer.c' line='390' column='1'/>
<return type-id='7359adad'/>
@@ -152773,6 +153326,11 @@
<parameter type-id='cc769659' name='chinfo' filepath='drivers/rpmsg/rpmsg_core.c' line='57' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='rpmsg_rx_done' mangled-name='rpmsg_rx_done' filepath='drivers/rpmsg/rpmsg_core.c' line='376' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_rx_done'>
+ <parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='376' column='1'/>
+ <parameter type-id='eaa32e2f' name='data' filepath='drivers/rpmsg/rpmsg_core.c' line='376' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='rpmsg_send' mangled-name='rpmsg_send' filepath='drivers/rpmsg/rpmsg_core.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rpmsg_send'>
<parameter type-id='feb59272' name='ept' filepath='drivers/rpmsg/rpmsg_core.c' line='154' column='1'/>
<parameter type-id='eaa32e2f' name='data' filepath='drivers/rpmsg/rpmsg_core.c' line='154' column='1'/>
@@ -152803,8 +153361,8 @@
<parameter type-id='cc769659' name='chinfo' filepath='drivers/rpmsg/rpmsg_core.c' line='659' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='rproc_add' mangled-name='rproc_add' filepath='drivers/remoteproc/remoteproc_core.c' line='2372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add'>
- <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2372' column='1'/>
+ <function-decl name='rproc_add' mangled-name='rproc_add' filepath='drivers/remoteproc/remoteproc_core.c' line='2378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add'>
+ <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2378' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='rproc_add_carveout' mangled-name='rproc_add_carveout' filepath='drivers/remoteproc/remoteproc_core.c' line='1004' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add_carveout'>
@@ -152812,21 +153370,21 @@
<parameter type-id='abf87da2' name='mem' filepath='drivers/remoteproc/remoteproc_core.c' line='1004' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='rproc_add_subdev' mangled-name='rproc_add_subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2735' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add_subdev'>
- <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2735' column='1'/>
- <parameter type-id='3591079f' name='subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2735' column='1'/>
+ <function-decl name='rproc_add_subdev' mangled-name='rproc_add_subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_add_subdev'>
+ <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2741' column='1'/>
+ <parameter type-id='3591079f' name='subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2741' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='rproc_alloc' mangled-name='rproc_alloc' filepath='drivers/remoteproc/remoteproc_core.c' line='2546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_alloc'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='2546' column='1'/>
- <parameter type-id='80f4b756' name='name' filepath='drivers/remoteproc/remoteproc_core.c' line='2546' column='1'/>
- <parameter type-id='48daa4cd' name='ops' filepath='drivers/remoteproc/remoteproc_core.c' line='2547' column='1'/>
- <parameter type-id='80f4b756' name='firmware' filepath='drivers/remoteproc/remoteproc_core.c' line='2548' column='1'/>
- <parameter type-id='95e97e5e' name='len' filepath='drivers/remoteproc/remoteproc_core.c' line='2548' column='1'/>
+ <function-decl name='rproc_alloc' mangled-name='rproc_alloc' filepath='drivers/remoteproc/remoteproc_core.c' line='2552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_alloc'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='2552' column='1'/>
+ <parameter type-id='80f4b756' name='name' filepath='drivers/remoteproc/remoteproc_core.c' line='2552' column='1'/>
+ <parameter type-id='48daa4cd' name='ops' filepath='drivers/remoteproc/remoteproc_core.c' line='2553' column='1'/>
+ <parameter type-id='80f4b756' name='firmware' filepath='drivers/remoteproc/remoteproc_core.c' line='2554' column='1'/>
+ <parameter type-id='95e97e5e' name='len' filepath='drivers/remoteproc/remoteproc_core.c' line='2554' column='1'/>
<return type-id='5771c601'/>
</function-decl>
- <function-decl name='rproc_boot' mangled-name='rproc_boot' filepath='drivers/remoteproc/remoteproc_core.c' line='2025' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_boot'>
- <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2025' column='1'/>
+ <function-decl name='rproc_boot' mangled-name='rproc_boot' filepath='drivers/remoteproc/remoteproc_core.c' line='2031' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_boot'>
+ <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2031' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='rproc_coredump' mangled-name='rproc_coredump' filepath='drivers/remoteproc/remoteproc_coredump.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_coredump'>
@@ -152868,8 +153426,8 @@
<parameter type-id='d8e6b335' name='is_iomem' filepath='drivers/remoteproc/remoteproc_core.c' line='196' column='1'/>
<return type-id='eaa32e2f'/>
</function-decl>
- <function-decl name='rproc_del' mangled-name='rproc_del' filepath='drivers/remoteproc/remoteproc_core.c' line='2659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_del'>
- <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2659' column='1'/>
+ <function-decl name='rproc_del' mangled-name='rproc_del' filepath='drivers/remoteproc/remoteproc_core.c' line='2665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_del'>
+ <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2665' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='rproc_del_carveout' mangled-name='rproc_del_carveout' filepath='drivers/remoteproc/remoteproc_core.c' line='1017' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_del_carveout'>
@@ -152902,16 +153460,16 @@
<parameter type-id='fce0537d' name='fw' filepath='drivers/remoteproc/remoteproc_elf_loader.c' line='37' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='rproc_free' mangled-name='rproc_free' filepath='drivers/remoteproc/remoteproc_core.c' line='2622' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_free'>
- <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2622' column='1'/>
+ <function-decl name='rproc_free' mangled-name='rproc_free' filepath='drivers/remoteproc/remoteproc_core.c' line='2628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_free'>
+ <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2628' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='rproc_get_by_child' mangled-name='rproc_get_by_child' filepath='drivers/remoteproc/remoteproc_core.c' line='2758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_get_by_child'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='2758' column='1'/>
+ <function-decl name='rproc_get_by_child' mangled-name='rproc_get_by_child' filepath='drivers/remoteproc/remoteproc_core.c' line='2764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_get_by_child'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/remoteproc/remoteproc_core.c' line='2764' column='1'/>
<return type-id='5771c601'/>
</function-decl>
- <function-decl name='rproc_get_by_phandle' mangled-name='rproc_get_by_phandle' filepath='drivers/remoteproc/remoteproc_core.c' line='2215' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_get_by_phandle'>
- <parameter type-id='6e394fba' name='phandle' filepath='drivers/remoteproc/remoteproc_core.c' line='2215' column='1'/>
+ <function-decl name='rproc_get_by_phandle' mangled-name='rproc_get_by_phandle' filepath='drivers/remoteproc/remoteproc_core.c' line='2221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_get_by_phandle'>
+ <parameter type-id='6e394fba' name='phandle' filepath='drivers/remoteproc/remoteproc_core.c' line='2221' column='1'/>
<return type-id='5771c601'/>
</function-decl>
<function-decl name='rproc_mem_entry_free' mangled-name='rproc_mem_entry_free' filepath='drivers/remoteproc/remoteproc_core.c' line='1085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_mem_entry_free'>
@@ -152945,22 +153503,22 @@
<parameter is-variadic='yes'/>
<return type-id='abf87da2'/>
</function-decl>
- <function-decl name='rproc_put' mangled-name='rproc_put' filepath='drivers/remoteproc/remoteproc_core.c' line='2637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_put'>
- <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2637' column='1'/>
+ <function-decl name='rproc_put' mangled-name='rproc_put' filepath='drivers/remoteproc/remoteproc_core.c' line='2643' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_put'>
+ <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2643' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='rproc_remove_subdev' mangled-name='rproc_remove_subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2746' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_remove_subdev'>
- <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2746' column='1'/>
- <parameter type-id='3591079f' name='subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2746' column='1'/>
+ <function-decl name='rproc_remove_subdev' mangled-name='rproc_remove_subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_remove_subdev'>
+ <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2752' column='1'/>
+ <parameter type-id='3591079f' name='subdev' filepath='drivers/remoteproc/remoteproc_core.c' line='2752' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='rproc_report_crash' mangled-name='rproc_report_crash' filepath='drivers/remoteproc/remoteproc_core.c' line='2780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_report_crash'>
- <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2780' column='1'/>
- <parameter type-id='25751b8f' name='type' filepath='drivers/remoteproc/remoteproc_core.c' line='2780' column='1'/>
+ <function-decl name='rproc_report_crash' mangled-name='rproc_report_crash' filepath='drivers/remoteproc/remoteproc_core.c' line='2786' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_report_crash'>
+ <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2786' column='1'/>
+ <parameter type-id='25751b8f' name='type' filepath='drivers/remoteproc/remoteproc_core.c' line='2786' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='rproc_shutdown' mangled-name='rproc_shutdown' filepath='drivers/remoteproc/remoteproc_core.c' line='2103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_shutdown'>
- <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2103' column='1'/>
+ <function-decl name='rproc_shutdown' mangled-name='rproc_shutdown' filepath='drivers/remoteproc/remoteproc_core.c' line='2109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_shutdown'>
+ <parameter type-id='5771c601' name='rproc' filepath='drivers/remoteproc/remoteproc_core.c' line='2109' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='rproc_vq_interrupt' mangled-name='rproc_vq_interrupt' filepath='drivers/remoteproc/remoteproc_virtio.c' line='51' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rproc_vq_interrupt'>
@@ -152969,8 +153527,8 @@
<return type-id='4bdecfd7'/>
</function-decl>
<var-decl name='rps_needed' type-id='237c0d27' mangled-name='rps_needed' visibility='default' filepath='net/core/dev.c' line='4367' column='1' elf-symbol-id='rps_needed'/>
- <function-decl name='rq_flush_dcache_pages' mangled-name='rq_flush_dcache_pages' filepath='block/blk-core.c' line='1507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rq_flush_dcache_pages'>
- <parameter type-id='3dad1a48' name='rq' filepath='block/blk-core.c' line='1507' column='1'/>
+ <function-decl name='rq_flush_dcache_pages' mangled-name='rq_flush_dcache_pages' filepath='block/blk-core.c' line='1503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rq_flush_dcache_pages'>
+ <parameter type-id='3dad1a48' name='rq' filepath='block/blk-core.c' line='1503' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='rt6_lookup' mangled-name='rt6_lookup' filepath='net/ipv6/route.c' line='1262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='rt6_lookup'>
@@ -153175,43 +153733,43 @@
</function-decl>
<var-decl name='sched_feat_keys' type-id='98c5d52c' mangled-name='sched_feat_keys' visibility='default' filepath='kernel/sched/debug.c' line='80' column='1' elf-symbol-id='sched_feat_keys'/>
<var-decl name='sched_feat_names' type-id='3a06f3b2' mangled-name='sched_feat_names' visibility='default' filepath='kernel/sched/debug.c' line='51' column='1' elf-symbol-id='sched_feat_names'/>
- <function-decl name='sched_set_fifo' mangled-name='sched_set_fifo' filepath='kernel/sched/core.c' line='7824' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_fifo'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7824' column='1'/>
+ <function-decl name='sched_set_fifo' mangled-name='sched_set_fifo' filepath='kernel/sched/core.c' line='7791' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_fifo'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7791' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='sched_set_fifo_low' mangled-name='sched_set_fifo_low' filepath='kernel/sched/core.c' line='7834' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_fifo_low'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7834' column='1'/>
+ <function-decl name='sched_set_fifo_low' mangled-name='sched_set_fifo_low' filepath='kernel/sched/core.c' line='7801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_fifo_low'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7801' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='sched_set_normal' mangled-name='sched_set_normal' filepath='kernel/sched/core.c' line='7841' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_normal'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7841' column='1'/>
- <parameter type-id='95e97e5e' name='nice' filepath='kernel/sched/core.c' line='7841' column='1'/>
+ <function-decl name='sched_set_normal' mangled-name='sched_set_normal' filepath='kernel/sched/core.c' line='7808' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_set_normal'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7808' column='1'/>
+ <parameter type-id='95e97e5e' name='nice' filepath='kernel/sched/core.c' line='7808' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='sched_setattr' mangled-name='sched_setattr' filepath='kernel/sched/core.c' line='7774' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setattr'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7774' column='1'/>
- <parameter type-id='8abbb6c3' name='attr' filepath='kernel/sched/core.c' line='7774' column='1'/>
+ <function-decl name='sched_setattr' mangled-name='sched_setattr' filepath='kernel/sched/core.c' line='7741' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setattr'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7741' column='1'/>
+ <parameter type-id='8abbb6c3' name='attr' filepath='kernel/sched/core.c' line='7741' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='sched_setattr_nocheck' mangled-name='sched_setattr_nocheck' filepath='kernel/sched/core.c' line='7780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setattr_nocheck'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7780' column='1'/>
- <parameter type-id='8abbb6c3' name='attr' filepath='kernel/sched/core.c' line='7780' column='1'/>
+ <function-decl name='sched_setattr_nocheck' mangled-name='sched_setattr_nocheck' filepath='kernel/sched/core.c' line='7747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setattr_nocheck'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7747' column='1'/>
+ <parameter type-id='8abbb6c3' name='attr' filepath='kernel/sched/core.c' line='7747' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='sched_setscheduler' mangled-name='sched_setscheduler' filepath='kernel/sched/core.c' line='7767' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setscheduler'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7767' column='1'/>
- <parameter type-id='95e97e5e' name='policy' filepath='kernel/sched/core.c' line='7767' column='1'/>
- <parameter type-id='36fca399' name='param' filepath='kernel/sched/core.c' line='7768' column='1'/>
+ <function-decl name='sched_setscheduler' mangled-name='sched_setscheduler' filepath='kernel/sched/core.c' line='7734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setscheduler'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7734' column='1'/>
+ <parameter type-id='95e97e5e' name='policy' filepath='kernel/sched/core.c' line='7734' column='1'/>
+ <parameter type-id='36fca399' name='param' filepath='kernel/sched/core.c' line='7735' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='sched_setscheduler_nocheck' mangled-name='sched_setscheduler_nocheck' filepath='kernel/sched/core.c' line='7799' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setscheduler_nocheck'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7799' column='1'/>
- <parameter type-id='95e97e5e' name='policy' filepath='kernel/sched/core.c' line='7799' column='1'/>
- <parameter type-id='36fca399' name='param' filepath='kernel/sched/core.c' line='7800' column='1'/>
+ <function-decl name='sched_setscheduler_nocheck' mangled-name='sched_setscheduler_nocheck' filepath='kernel/sched/core.c' line='7766' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_setscheduler_nocheck'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7766' column='1'/>
+ <parameter type-id='95e97e5e' name='policy' filepath='kernel/sched/core.c' line='7766' column='1'/>
+ <parameter type-id='36fca399' name='param' filepath='kernel/sched/core.c' line='7767' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='sched_show_task' mangled-name='sched_show_task' filepath='kernel/sched/core.c' line='8811' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_show_task'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='8811' column='1'/>
+ <function-decl name='sched_show_task' mangled-name='sched_show_task' filepath='kernel/sched/core.c' line='8743' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_show_task'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='8743' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='sched_trace_cfs_rq_avg' mangled-name='sched_trace_cfs_rq_avg' filepath='kernel/sched/fair.c' line='12054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_cfs_rq_avg'>
@@ -153248,8 +153806,8 @@
<parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='12114' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <var-decl name='sched_uclamp_used' type-id='237c0d27' mangled-name='sched_uclamp_used' visibility='default' filepath='kernel/sched/core.c' line='1318' column='1' elf-symbol-id='sched_uclamp_used'/>
- <function-decl name='schedule' mangled-name='schedule' filepath='kernel/sched/core.c' line='6612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule'>
+ <var-decl name='sched_uclamp_used' type-id='237c0d27' mangled-name='sched_uclamp_used' visibility='default' filepath='kernel/sched/core.c' line='1315' column='1' elf-symbol-id='sched_uclamp_used'/>
+ <function-decl name='schedule' mangled-name='schedule' filepath='kernel/sched/core.c' line='6579' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule'>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='schedule_hrtimeout' mangled-name='schedule_hrtimeout' filepath='kernel/time/hrtimer.c' line='2382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='schedule_hrtimeout'>
@@ -153373,8 +153931,8 @@
<parameter type-id='075d8b9f' name='ses' filepath='drivers/scsi/scsi_error.c' line='1060' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='scsi_get_host_dev' mangled-name='scsi_get_host_dev' filepath='drivers/scsi/scsi_scan.c' line='1972' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_get_host_dev'>
- <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1972' column='1'/>
+ <function-decl name='scsi_get_host_dev' mangled-name='scsi_get_host_dev' filepath='drivers/scsi/scsi_scan.c' line='1971' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_get_host_dev'>
+ <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1971' column='1'/>
<return type-id='eb572b74'/>
</function-decl>
<function-decl name='scsi_host_alloc' mangled-name='scsi_host_alloc' filepath='drivers/scsi/hosts.c' line='377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_host_alloc'>
@@ -153424,6 +153982,10 @@
<parameter type-id='d6a0d460' name='sshdr' filepath='drivers/scsi/scsi_logging.c' line='360' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='scsi_register_driver' mangled-name='scsi_register_driver' filepath='drivers/scsi/scsi_sysfs.c' line='1591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_register_driver'>
+ <parameter type-id='00c7b870' name='drv' filepath='drivers/scsi/scsi_sysfs.c' line='1591' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='scsi_register_interface' mangled-name='scsi_register_interface' filepath='drivers/scsi/scsi_sysfs.c' line='1599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_register_interface'>
<parameter type-id='ec167ceb' name='intf' filepath='drivers/scsi/scsi_sysfs.c' line='1599' column='1'/>
<return type-id='95e97e5e'/>
@@ -153447,8 +154009,8 @@
<parameter type-id='95e97e5e' name='target' filepath='drivers/scsi/scsi_error.c' line='2351' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='scsi_scan_host' mangled-name='scsi_scan_host' filepath='drivers/scsi/scsi_scan.c' line='1912' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_scan_host'>
- <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1912' column='1'/>
+ <function-decl name='scsi_scan_host' mangled-name='scsi_scan_host' filepath='drivers/scsi/scsi_scan.c' line='1911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_scan_host'>
+ <parameter type-id='a970a64c' name='shost' filepath='drivers/scsi/scsi_scan.c' line='1911' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='scsi_schedule_eh' mangled-name='scsi_schedule_eh' filepath='drivers/scsi/scsi_error.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='scsi_schedule_eh'>
@@ -153484,6 +154046,14 @@
<parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='4859' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='sdhci_adma_write_desc' mangled-name='sdhci_adma_write_desc' filepath='drivers/mmc/host/sdhci.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_adma_write_desc'>
+ <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='689' column='1'/>
+ <parameter type-id='63e171df' name='desc' filepath='drivers/mmc/host/sdhci.c' line='689' column='1'/>
+ <parameter type-id='cf29c9b3' name='addr' filepath='drivers/mmc/host/sdhci.c' line='690' column='1'/>
+ <parameter type-id='95e97e5e' name='len' filepath='drivers/mmc/host/sdhci.c' line='690' column='1'/>
+ <parameter type-id='f0981eeb' name='cmd' filepath='drivers/mmc/host/sdhci.c' line='690' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='sdhci_cleanup_host' mangled-name='sdhci_cleanup_host' filepath='drivers/mmc/host/sdhci.c' line='4770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_cleanup_host'>
<parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='4770' column='1'/>
<return type-id='48b5725f'/>
@@ -153580,6 +154150,11 @@
<parameter type-id='8efea9e5' name='vdd' filepath='drivers/mmc/host/sdhci.c' line='2042' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='sdhci_set_uhs_signaling' mangled-name='sdhci_set_uhs_signaling' filepath='drivers/mmc/host/sdhci.c' line='2242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_set_uhs_signaling'>
+ <parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='2242' column='1'/>
+ <parameter type-id='f0981eeb' name='timing' filepath='drivers/mmc/host/sdhci.c' line='2242' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='sdhci_setup_host' mangled-name='sdhci_setup_host' filepath='drivers/mmc/host/sdhci.c' line='4221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sdhci_setup_host'>
<parameter type-id='2661e0d9' name='host' filepath='drivers/mmc/host/sdhci.c' line='4221' column='1'/>
<return type-id='95e97e5e'/>
@@ -153766,9 +154341,9 @@
<parameter type-id='b4888646' name='flic' filepath='security/security.c' line='2292' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='select_fallback_rq' mangled-name='select_fallback_rq' filepath='kernel/sched/core.c' line='3453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='select_fallback_rq'>
- <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='3453' column='1'/>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3453' column='1'/>
+ <function-decl name='select_fallback_rq' mangled-name='select_fallback_rq' filepath='kernel/sched/core.c' line='3420' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='select_fallback_rq'>
+ <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='3420' column='1'/>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3420' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='send_sig' mangled-name='send_sig' filepath='kernel/signal.c' line='1655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='send_sig'>
@@ -154019,9 +154594,9 @@
<parameter type-id='a42536cd' name='size' filepath='block/genhd.c' line='69' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='set_cpus_allowed_ptr' mangled-name='set_cpus_allowed_ptr' filepath='kernel/sched/core.c' line='2996' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpus_allowed_ptr'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2996' column='1'/>
- <parameter type-id='5f8a1ac4' name='new_mask' filepath='kernel/sched/core.c' line='2996' column='1'/>
+ <function-decl name='set_cpus_allowed_ptr' mangled-name='set_cpus_allowed_ptr' filepath='kernel/sched/core.c' line='2952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cpus_allowed_ptr'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='2952' column='1'/>
+ <parameter type-id='5f8a1ac4' name='new_mask' filepath='kernel/sched/core.c' line='2952' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='set_disk_ro' mangled-name='set_disk_ro' filepath='block/genhd.c' line='1403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_disk_ro'>
@@ -154056,9 +154631,9 @@
<parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2631' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='set_task_cpu' mangled-name='set_task_cpu' filepath='kernel/sched/core.c' line='3125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_task_cpu'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3125' column='1'/>
- <parameter type-id='f0981eeb' name='new_cpu' filepath='kernel/sched/core.c' line='3125' column='1'/>
+ <function-decl name='set_task_cpu' mangled-name='set_task_cpu' filepath='kernel/sched/core.c' line='3092' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_task_cpu'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='3092' column='1'/>
+ <parameter type-id='f0981eeb' name='new_cpu' filepath='kernel/sched/core.c' line='3092' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='set_task_ioprio' mangled-name='set_task_ioprio' filepath='block/ioprio.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_task_ioprio'>
@@ -154066,9 +154641,9 @@
<parameter type-id='95e97e5e' name='ioprio' filepath='block/ioprio.c' line='36' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='set_user_nice' mangled-name='set_user_nice' filepath='kernel/sched/core.c' line='7121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_user_nice'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7121' column='1'/>
- <parameter type-id='bd54fe1a' name='nice' filepath='kernel/sched/core.c' line='7121' column='1'/>
+ <function-decl name='set_user_nice' mangled-name='set_user_nice' filepath='kernel/sched/core.c' line='7088' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_user_nice'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='7088' column='1'/>
+ <parameter type-id='bd54fe1a' name='nice' filepath='kernel/sched/core.c' line='7088' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='setattr_copy' mangled-name='setattr_copy' filepath='fs/attr.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='setattr_copy'>
@@ -154106,6 +154681,15 @@
<parameter type-id='3eb7c31c' name='gfp_mask' filepath='lib/scatterlist.c' line='568' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='sg_copy_buffer' mangled-name='sg_copy_buffer' filepath='lib/scatterlist.c' line='951' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_copy_buffer'>
+ <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='951' column='1'/>
+ <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='951' column='1'/>
+ <parameter type-id='eaa32e2f' name='buf' filepath='lib/scatterlist.c' line='951' column='1'/>
+ <parameter type-id='b59d7dce' name='buflen' filepath='lib/scatterlist.c' line='952' column='1'/>
+ <parameter type-id='ad707ada' name='skip' filepath='lib/scatterlist.c' line='952' column='1'/>
+ <parameter type-id='b50a4934' name='to_buffer' filepath='lib/scatterlist.c' line='952' column='1'/>
+ <return type-id='b59d7dce'/>
+ </function-decl>
<function-decl name='sg_copy_from_buffer' mangled-name='sg_copy_from_buffer' filepath='lib/scatterlist.c' line='997' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_copy_from_buffer'>
<parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='997' column='1'/>
<parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='997' column='1'/>
@@ -154194,6 +154778,13 @@
<parameter type-id='ad707ada' name='skip' filepath='lib/scatterlist.c' line='1051' column='1'/>
<return type-id='b59d7dce'/>
</function-decl>
+ <function-decl name='sg_zero_buffer' mangled-name='sg_zero_buffer' filepath='lib/scatterlist.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sg_zero_buffer'>
+ <parameter type-id='bf3ef905' name='sgl' filepath='lib/scatterlist.c' line='1066' column='1'/>
+ <parameter type-id='f0981eeb' name='nents' filepath='lib/scatterlist.c' line='1066' column='1'/>
+ <parameter type-id='b59d7dce' name='buflen' filepath='lib/scatterlist.c' line='1067' column='1'/>
+ <parameter type-id='ad707ada' name='skip' filepath='lib/scatterlist.c' line='1067' column='1'/>
+ <return type-id='b59d7dce'/>
+ </function-decl>
<function-decl name='sget_fc' mangled-name='sget_fc' filepath='fs/super.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sget_fc'>
<parameter type-id='5760dcb0' name='fc' filepath='fs/super.c' line='513' column='1'/>
<parameter type-id='30341fa1' name='test' filepath='fs/super.c' line='514' column='1'/>
@@ -154239,7 +154830,7 @@
<function-decl name='show_rcu_tasks_classic_gp_kthread' mangled-name='show_rcu_tasks_classic_gp_kthread' filepath='kernel/rcu/tasks.h' line='608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_rcu_tasks_classic_gp_kthread'>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='show_rcu_tasks_trace_gp_kthread' mangled-name='show_rcu_tasks_trace_gp_kthread' filepath='kernel/rcu/tasks.h' line='1292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_rcu_tasks_trace_gp_kthread'>
+ <function-decl name='show_rcu_tasks_trace_gp_kthread' mangled-name='show_rcu_tasks_trace_gp_kthread' filepath='kernel/rcu/tasks.h' line='1278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_rcu_tasks_trace_gp_kthread'>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='show_regs' mangled-name='show_regs' filepath='arch/arm64/kernel/process.c' line='245' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='show_regs'>
@@ -154257,15 +154848,15 @@
<parameter type-id='95e97e5e' name='priority' filepath='mm/vmscan.c' line='908' column='1'/>
<return type-id='7359adad'/>
</function-decl>
- <function-decl name='si_mem_available' mangled-name='si_mem_available' filepath='mm/page_alloc.c' line='5927' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_mem_available'>
+ <function-decl name='si_mem_available' mangled-name='si_mem_available' filepath='mm/page_alloc.c' line='5930' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_mem_available'>
<return type-id='bd54fe1a'/>
</function-decl>
- <function-decl name='si_meminfo' mangled-name='si_meminfo' filepath='mm/page_alloc.c' line='5973' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_meminfo'>
- <parameter type-id='0f561784' name='val' filepath='mm/page_alloc.c' line='5973' column='1'/>
+ <function-decl name='si_meminfo' mangled-name='si_meminfo' filepath='mm/page_alloc.c' line='5976' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_meminfo'>
+ <parameter type-id='0f561784' name='val' filepath='mm/page_alloc.c' line='5976' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='si_swapinfo' mangled-name='si_swapinfo' filepath='mm/swapfile.c' line='3406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_swapinfo'>
- <parameter type-id='0f561784' name='val' filepath='mm/swapfile.c' line='3406' column='1'/>
+ <function-decl name='si_swapinfo' mangled-name='si_swapinfo' filepath='mm/swapfile.c' line='3407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='si_swapinfo'>
+ <parameter type-id='0f561784' name='val' filepath='mm/swapfile.c' line='3407' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='sigprocmask' mangled-name='sigprocmask' filepath='kernel/signal.c' line='3090' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sigprocmask'>
@@ -154301,6 +154892,8 @@
<parameter type-id='b53e8dbb' name='ppos' filepath='fs/libfs.c' line='1007' column='1'/>
<return type-id='79a0948f'/>
</function-decl>
+ <var-decl name='simple_dir_inode_operations' type-id='c8e0fb8e' mangled-name='simple_dir_inode_operations' visibility='default' filepath='fs/libfs.c' line='241' column='1' elf-symbol-id='simple_dir_inode_operations'/>
+ <var-decl name='simple_dir_operations' type-id='b8ae588d' mangled-name='simple_dir_operations' visibility='default' filepath='fs/libfs.c' line='231' column='1' elf-symbol-id='simple_dir_operations'/>
<function-decl name='simple_get_link' mangled-name='simple_get_link' filepath='fs/libfs.c' line='1281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_get_link'>
<parameter type-id='27675065' name='dentry' filepath='fs/libfs.c' line='1281' column='1'/>
<parameter type-id='7e666abe' name='inode' filepath='fs/libfs.c' line='1281' column='1'/>
@@ -154320,6 +154913,11 @@
<parameter type-id='b59d7dce' name='available' filepath='fs/libfs.c' line='730' column='1'/>
<return type-id='79a0948f'/>
</function-decl>
+ <function-decl name='simple_statfs' mangled-name='simple_statfs' filepath='fs/libfs.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_statfs'>
+ <parameter type-id='27675065' name='dentry' filepath='fs/libfs.c' line='41' column='1'/>
+ <parameter type-id='087d687b' name='buf' filepath='fs/libfs.c' line='41' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='simple_strtol' mangled-name='simple_strtol' filepath='include/linux/kstrtox.h' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='simple_strtol'>
<parameter type-id='80f4b756'/>
<parameter type-id='9b23c9ad'/>
@@ -154423,8 +155021,8 @@
<parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='1529' column='1'/>
<return type-id='0fbf3cfd'/>
</function-decl>
- <function-decl name='skb_clone_sk' mangled-name='skb_clone_sk' filepath='net/core/skbuff.c' line='4868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_clone_sk'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4868' column='1'/>
+ <function-decl name='skb_clone_sk' mangled-name='skb_clone_sk' filepath='net/core/skbuff.c' line='4867' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_clone_sk'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4867' column='1'/>
<return type-id='0fbf3cfd'/>
</function-decl>
<function-decl name='skb_coalesce_rx_frag' mangled-name='skb_coalesce_rx_frag' filepath='net/core/skbuff.c' line='616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_coalesce_rx_frag'>
@@ -154434,9 +155032,9 @@
<parameter type-id='f0981eeb' name='truesize' filepath='net/core/skbuff.c' line='617' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='skb_complete_wifi_ack' mangled-name='skb_complete_wifi_ack' filepath='net/core/skbuff.c' line='5015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_complete_wifi_ack'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5015' column='1'/>
- <parameter type-id='b50a4934' name='acked' filepath='net/core/skbuff.c' line='5015' column='1'/>
+ <function-decl name='skb_complete_wifi_ack' mangled-name='skb_complete_wifi_ack' filepath='net/core/skbuff.c' line='5014' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_complete_wifi_ack'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5014' column='1'/>
+ <parameter type-id='b50a4934' name='acked' filepath='net/core/skbuff.c' line='5014' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='skb_copy' mangled-name='skb_copy' filepath='net/core/skbuff.c' line='1608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_copy'>
@@ -154477,10 +155075,10 @@
<parameter type-id='3eb7c31c' name='gfp_mask' filepath='net/core/skbuff.c' line='1441' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='skb_cow_data' mangled-name='skb_cow_data' filepath='net/core/skbuff.c' line='4689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_cow_data'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4689' column='1'/>
- <parameter type-id='95e97e5e' name='tailbits' filepath='net/core/skbuff.c' line='4689' column='1'/>
- <parameter type-id='a10cc675' name='trailer' filepath='net/core/skbuff.c' line='4689' column='1'/>
+ <function-decl name='skb_cow_data' mangled-name='skb_cow_data' filepath='net/core/skbuff.c' line='4688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_cow_data'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4688' column='1'/>
+ <parameter type-id='95e97e5e' name='tailbits' filepath='net/core/skbuff.c' line='4688' column='1'/>
+ <parameter type-id='a10cc675' name='trailer' filepath='net/core/skbuff.c' line='4688' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='skb_dequeue' mangled-name='skb_dequeue' filepath='net/core/skbuff.c' line='3269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_dequeue'>
@@ -154497,9 +155095,9 @@
<parameter type-id='b50a4934' name='full_pkt' filepath='net/core/skbuff.c' line='813' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='skb_ensure_writable' mangled-name='skb_ensure_writable' filepath='net/core/skbuff.c' line='5750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_ensure_writable'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5750' column='1'/>
- <parameter type-id='95e97e5e' name='write_len' filepath='net/core/skbuff.c' line='5750' column='1'/>
+ <function-decl name='skb_ensure_writable' mangled-name='skb_ensure_writable' filepath='net/core/skbuff.c' line='5749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_ensure_writable'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5749' column='1'/>
+ <parameter type-id='95e97e5e' name='write_len' filepath='net/core/skbuff.c' line='5749' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='skb_free_datagram' mangled-name='skb_free_datagram' filepath='net/core/datagram.c' line='323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_free_datagram'>
@@ -154513,10 +155111,10 @@
<parameter type-id='3eb7c31c' name='gfp' filepath='net/core/sock.c' line='2617' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='skb_partial_csum_set' mangled-name='skb_partial_csum_set' filepath='net/core/skbuff.c' line='5053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_partial_csum_set'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5053' column='1'/>
- <parameter type-id='1dc6a898' name='start' filepath='net/core/skbuff.c' line='5053' column='1'/>
- <parameter type-id='1dc6a898' name='off' filepath='net/core/skbuff.c' line='5053' column='1'/>
+ <function-decl name='skb_partial_csum_set' mangled-name='skb_partial_csum_set' filepath='net/core/skbuff.c' line='5052' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_partial_csum_set'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5052' column='1'/>
+ <parameter type-id='1dc6a898' name='start' filepath='net/core/skbuff.c' line='5052' column='1'/>
+ <parameter type-id='1dc6a898' name='off' filepath='net/core/skbuff.c' line='5052' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
<function-decl name='skb_pull' mangled-name='skb_pull' filepath='net/core/skbuff.c' line='2081' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_pull'>
@@ -154565,9 +155163,9 @@
<parameter type-id='7292109c' name='err' filepath='net/core/datagram.c' line='313' column='1'/>
<return type-id='0fbf3cfd'/>
</function-decl>
- <function-decl name='skb_scrub_packet' mangled-name='skb_scrub_packet' filepath='net/core/skbuff.c' line='5518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_scrub_packet'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5518' column='1'/>
- <parameter type-id='b50a4934' name='xnet' filepath='net/core/skbuff.c' line='5518' column='1'/>
+ <function-decl name='skb_scrub_packet' mangled-name='skb_scrub_packet' filepath='net/core/skbuff.c' line='5517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_scrub_packet'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='5517' column='1'/>
+ <parameter type-id='b50a4934' name='xnet' filepath='net/core/skbuff.c' line='5517' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='skb_set_owner_w' mangled-name='skb_set_owner_w' filepath='net/core/sock.c' line='2234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_set_owner_w'>
@@ -154588,18 +155186,18 @@
<parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='2781' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='skb_to_sgvec' mangled-name='skb_to_sgvec' filepath='net/core/skbuff.c' line='4631' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_to_sgvec'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4631' column='1'/>
- <parameter type-id='bf3ef905' name='sg' filepath='net/core/skbuff.c' line='4631' column='1'/>
- <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='4631' column='1'/>
- <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='4631' column='1'/>
+ <function-decl name='skb_to_sgvec' mangled-name='skb_to_sgvec' filepath='net/core/skbuff.c' line='4630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_to_sgvec'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4630' column='1'/>
+ <parameter type-id='bf3ef905' name='sg' filepath='net/core/skbuff.c' line='4630' column='1'/>
+ <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='4630' column='1'/>
+ <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='4630' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='skb_to_sgvec_nomark' mangled-name='skb_to_sgvec_nomark' filepath='net/core/skbuff.c' line='4663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_to_sgvec_nomark'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4663' column='1'/>
- <parameter type-id='bf3ef905' name='sg' filepath='net/core/skbuff.c' line='4663' column='1'/>
- <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='4664' column='1'/>
- <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='4664' column='1'/>
+ <function-decl name='skb_to_sgvec_nomark' mangled-name='skb_to_sgvec_nomark' filepath='net/core/skbuff.c' line='4662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_to_sgvec_nomark'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/core/skbuff.c' line='4662' column='1'/>
+ <parameter type-id='bf3ef905' name='sg' filepath='net/core/skbuff.c' line='4662' column='1'/>
+ <parameter type-id='95e97e5e' name='offset' filepath='net/core/skbuff.c' line='4663' column='1'/>
+ <parameter type-id='95e97e5e' name='len' filepath='net/core/skbuff.c' line='4663' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='skb_trim' mangled-name='skb_trim' filepath='net/core/skbuff.c' line='2096' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_trim'>
@@ -154607,9 +155205,9 @@
<parameter type-id='f0981eeb' name='len' filepath='net/core/skbuff.c' line='2096' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='skb_tstamp_tx' mangled-name='skb_tstamp_tx' filepath='net/core/skbuff.c' line='5007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_tstamp_tx'>
- <parameter type-id='0fbf3cfd' name='orig_skb' filepath='net/core/skbuff.c' line='5007' column='1'/>
- <parameter type-id='68197365' name='hwtstamps' filepath='net/core/skbuff.c' line='5008' column='1'/>
+ <function-decl name='skb_tstamp_tx' mangled-name='skb_tstamp_tx' filepath='net/core/skbuff.c' line='5006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_tstamp_tx'>
+ <parameter type-id='0fbf3cfd' name='orig_skb' filepath='net/core/skbuff.c' line='5006' column='1'/>
+ <parameter type-id='68197365' name='hwtstamps' filepath='net/core/skbuff.c' line='5007' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='skb_unlink' mangled-name='skb_unlink' filepath='net/core/skbuff.c' line='3395' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='skb_unlink'>
@@ -154808,21 +155406,21 @@
<parameter type-id='eaa32e2f' name='arg' filepath='sound/core/vmaster.c' line='503' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='snd_ctl_boolean_mono_info' mangled-name='snd_ctl_boolean_mono_info' filepath='sound/core/control.c' line='2361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_boolean_mono_info'>
- <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='2361' column='1'/>
- <parameter type-id='0e291009' name='uinfo' filepath='sound/core/control.c' line='2362' column='1'/>
+ <function-decl name='snd_ctl_boolean_mono_info' mangled-name='snd_ctl_boolean_mono_info' filepath='sound/core/control.c' line='2367' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_boolean_mono_info'>
+ <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='2367' column='1'/>
+ <parameter type-id='0e291009' name='uinfo' filepath='sound/core/control.c' line='2368' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='snd_ctl_boolean_stereo_info' mangled-name='snd_ctl_boolean_stereo_info' filepath='sound/core/control.c' line='2381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_boolean_stereo_info'>
- <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='2381' column='1'/>
- <parameter type-id='0e291009' name='uinfo' filepath='sound/core/control.c' line='2382' column='1'/>
+ <function-decl name='snd_ctl_boolean_stereo_info' mangled-name='snd_ctl_boolean_stereo_info' filepath='sound/core/control.c' line='2387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_boolean_stereo_info'>
+ <parameter type-id='7a5054b7' name='kcontrol' filepath='sound/core/control.c' line='2387' column='1'/>
+ <parameter type-id='0e291009' name='uinfo' filepath='sound/core/control.c' line='2388' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='snd_ctl_enum_info' mangled-name='snd_ctl_enum_info' filepath='sound/core/control.c' line='2405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_enum_info'>
- <parameter type-id='0e291009' name='info' filepath='sound/core/control.c' line='2405' column='1'/>
- <parameter type-id='f0981eeb' name='channels' filepath='sound/core/control.c' line='2405' column='1'/>
- <parameter type-id='f0981eeb' name='items' filepath='sound/core/control.c' line='2406' column='1'/>
- <parameter type-id='13956559' name='names' filepath='sound/core/control.c' line='2406' column='1'/>
+ <function-decl name='snd_ctl_enum_info' mangled-name='snd_ctl_enum_info' filepath='sound/core/control.c' line='2411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_enum_info'>
+ <parameter type-id='0e291009' name='info' filepath='sound/core/control.c' line='2411' column='1'/>
+ <parameter type-id='f0981eeb' name='channels' filepath='sound/core/control.c' line='2411' column='1'/>
+ <parameter type-id='f0981eeb' name='items' filepath='sound/core/control.c' line='2412' column='1'/>
+ <parameter type-id='13956559' name='names' filepath='sound/core/control.c' line='2412' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='snd_ctl_find_id' mangled-name='snd_ctl_find_id' filepath='sound/core/control.c' line='807' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_ctl_find_id'>
@@ -155888,14 +156486,14 @@
<parameter type-id='d661a615' name='hw' filepath='sound/soc/soc-pcm.c' line='298' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='snd_soc_tplg_component_load' mangled-name='snd_soc_tplg_component_load' filepath='sound/soc/soc-topology.c' line='2637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_component_load'>
- <parameter type-id='807b7702' name='comp' filepath='sound/soc/soc-topology.c' line='2637' column='1'/>
- <parameter type-id='76e6e22f' name='ops' filepath='sound/soc/soc-topology.c' line='2638' column='1'/>
- <parameter type-id='fce0537d' name='fw' filepath='sound/soc/soc-topology.c' line='2638' column='1'/>
+ <function-decl name='snd_soc_tplg_component_load' mangled-name='snd_soc_tplg_component_load' filepath='sound/soc/soc-topology.c' line='2641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_component_load'>
+ <parameter type-id='807b7702' name='comp' filepath='sound/soc/soc-topology.c' line='2641' column='1'/>
+ <parameter type-id='76e6e22f' name='ops' filepath='sound/soc/soc-topology.c' line='2642' column='1'/>
+ <parameter type-id='fce0537d' name='fw' filepath='sound/soc/soc-topology.c' line='2642' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='snd_soc_tplg_component_remove' mangled-name='snd_soc_tplg_component_remove' filepath='sound/soc/soc-topology.c' line='2676' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_component_remove'>
- <parameter type-id='807b7702' name='comp' filepath='sound/soc/soc-topology.c' line='2676' column='1'/>
+ <function-decl name='snd_soc_tplg_component_remove' mangled-name='snd_soc_tplg_component_remove' filepath='sound/soc/soc-topology.c' line='2680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_component_remove'>
+ <parameter type-id='807b7702' name='comp' filepath='sound/soc/soc-topology.c' line='2680' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='snd_soc_tplg_widget_bind_event' mangled-name='snd_soc_tplg_widget_bind_event' filepath='sound/soc/soc-topology.c' line='596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='snd_soc_tplg_widget_bind_event'>
@@ -156689,12 +157287,12 @@
<parameter type-id='c485c22c' name='bh' filepath='fs/buffer.c' line='3060' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='submit_bio' mangled-name='submit_bio' filepath='block/blk-core.c' line='1058' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio'>
- <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1058' column='1'/>
+ <function-decl name='submit_bio' mangled-name='submit_bio' filepath='block/blk-core.c' line='1054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio'>
+ <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1054' column='1'/>
<return type-id='041bc907'/>
</function-decl>
- <function-decl name='submit_bio_noacct' mangled-name='submit_bio_noacct' filepath='block/blk-core.c' line='1026' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio_noacct'>
- <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1026' column='1'/>
+ <function-decl name='submit_bio_noacct' mangled-name='submit_bio_noacct' filepath='block/blk-core.c' line='1022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio_noacct'>
+ <parameter type-id='fb55efa1' name='bio' filepath='block/blk-core.c' line='1022' column='1'/>
<return type-id='041bc907'/>
</function-decl>
<function-decl name='submit_bio_wait' mangled-name='submit_bio_wait' filepath='block/bio.c' line='1223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='submit_bio_wait'>
@@ -156763,7 +157361,7 @@
<function-decl name='synchronize_rcu_tasks' mangled-name='synchronize_rcu_tasks' filepath='kernel/rcu/tasks.h' line='575' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_tasks'>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='synchronize_rcu_tasks_trace' mangled-name='synchronize_rcu_tasks_trace' filepath='kernel/rcu/tasks.h' line='1249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_tasks_trace'>
+ <function-decl name='synchronize_rcu_tasks_trace' mangled-name='synchronize_rcu_tasks_trace' filepath='kernel/rcu/tasks.h' line='1235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_rcu_tasks_trace'>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='synchronize_srcu' mangled-name='synchronize_srcu' filepath='kernel/rcu/srcutree.c' line='1006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='synchronize_srcu'>
@@ -156811,10 +157409,10 @@
<parameter type-id='80f4b756' name='property' filepath='drivers/mfd/syscon.c' line='266' column='1'/>
<return type-id='29af9a71'/>
</function-decl>
- <var-decl name='sysctl_sched_features' type-id='f0981eeb' mangled-name='sysctl_sched_features' visibility='default' filepath='kernel/sched/core.c' line='74' column='1' elf-symbol-id='sysctl_sched_features'/>
+ <var-decl name='sysctl_sched_features' type-id='f0981eeb' mangled-name='sysctl_sched_features' visibility='default' filepath='kernel/sched/core.c' line='71' column='1' elf-symbol-id='sysctl_sched_features'/>
<var-decl name='sysctl_sched_latency' type-id='f0981eeb' mangled-name='sysctl_sched_latency' visibility='default' filepath='kernel/sched/fair.c' line='42' column='1' elf-symbol-id='sysctl_sched_latency'/>
- <var-decl name='sysctl_vals' type-id='1fc64662' mangled-name='sysctl_vals' visibility='default' filepath='fs/proc/proc_sysctl.c' line='28' column='1' elf-symbol-id='sysctl_vals'/>
- <var-decl name='sysctl_vals_new' type-id='dcbdbf4a' mangled-name='sysctl_vals_new' visibility='default' filepath='fs/proc/proc_sysctl.c' line='30' column='1' elf-symbol-id='sysctl_vals_new'/>
+ <var-decl name='sysctl_vals' type-id='1fc64662' mangled-name='sysctl_vals' visibility='default' filepath='fs/proc/proc_sysctl.c' line='29' column='1' elf-symbol-id='sysctl_vals'/>
+ <var-decl name='sysctl_vals_new' type-id='dcbdbf4a' mangled-name='sysctl_vals_new' visibility='default' filepath='fs/proc/proc_sysctl.c' line='31' column='1' elf-symbol-id='sysctl_vals_new'/>
<function-decl name='sysfb_disable' mangled-name='sysfb_disable' filepath='drivers/firmware/sysfb.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfb_disable'>
<return type-id='48b5725f'/>
</function-decl>
@@ -156863,6 +157461,11 @@
<parameter type-id='80f4b756' name='name' filepath='fs/sysfs/symlink.c' line='90' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='sysfs_create_mount_point' mangled-name='sysfs_create_mount_point' filepath='fs/sysfs/dir.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_create_mount_point'>
+ <parameter type-id='d30bdc51' name='parent_kobj' filepath='fs/sysfs/dir.c' line='135' column='1'/>
+ <parameter type-id='80f4b756' name='name' filepath='fs/sysfs/dir.c' line='135' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='sysfs_emit' mangled-name='sysfs_emit' filepath='fs/sysfs/file.c' line='732' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_emit'>
<parameter type-id='26a90f95' name='buf' filepath='fs/sysfs/file.c' line='732' column='1'/>
<parameter type-id='80f4b756' name='fmt' filepath='fs/sysfs/file.c' line='732' column='1'/>
@@ -156930,6 +157533,11 @@
<parameter type-id='80f4b756' name='link_name' filepath='fs/sysfs/group.c' line='406' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='sysfs_remove_mount_point' mangled-name='sysfs_remove_mount_point' filepath='fs/sysfs/dir.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_remove_mount_point'>
+ <parameter type-id='d30bdc51' name='parent_kobj' filepath='fs/sysfs/dir.c' line='156' column='1'/>
+ <parameter type-id='80f4b756' name='name' filepath='fs/sysfs/dir.c' line='156' column='1'/>
+ <return type-id='48b5725f'/>
+ </function-decl>
<function-decl name='sysfs_streq' mangled-name='sysfs_streq' filepath='lib/string.c' line='701' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sysfs_streq'>
<parameter type-id='80f4b756' name='s1' filepath='lib/string.c' line='701' column='1'/>
<parameter type-id='80f4b756' name='s2' filepath='lib/string.c' line='701' column='1'/>
@@ -156975,13 +157583,13 @@
<parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/rt.c' line='1493' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='task_rq_lock' mangled-name='task_rq_lock' filepath='kernel/sched/core.c' line='589' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_rq_lock'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='589' column='1'/>
- <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='589' column='1'/>
+ <function-decl name='task_rq_lock' mangled-name='task_rq_lock' filepath='kernel/sched/core.c' line='586' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_rq_lock'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='586' column='1'/>
+ <parameter type-id='d0163a5e' name='rf' filepath='kernel/sched/core.c' line='586' column='1'/>
<return type-id='6ed6b432'/>
</function-decl>
- <function-decl name='task_sched_runtime' mangled-name='task_sched_runtime' filepath='kernel/sched/core.c' line='5343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_sched_runtime'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='5343' column='1'/>
+ <function-decl name='task_sched_runtime' mangled-name='task_sched_runtime' filepath='kernel/sched/core.c' line='5311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='task_sched_runtime'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='5311' column='1'/>
<return type-id='0d77e947'/>
</function-decl>
<function-decl name='tasklet_init' mangled-name='tasklet_init' filepath='kernel/softirq.c' line='840' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tasklet_init'>
@@ -157085,16 +157693,16 @@
<parameter type-id='eefe253e' name='tcpci' filepath='drivers/usb/typec/tcpm/tcpci.c' line='829' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='tcpm_cc_change' mangled-name='tcpm_cc_change' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_cc_change'>
- <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5416' column='1'/>
+ <function-decl name='tcpm_cc_change' mangled-name='tcpm_cc_change' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_cc_change'>
+ <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5415' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='tcpm_is_debouncing' mangled-name='tcpm_is_debouncing' filepath='drivers/usb/typec/tcpm/tcpm.c' line='984' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_is_debouncing'>
<parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='984' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='tcpm_pd_hard_reset' mangled-name='tcpm_pd_hard_reset' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_pd_hard_reset'>
- <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5434' column='1'/>
+ <function-decl name='tcpm_pd_hard_reset' mangled-name='tcpm_pd_hard_reset' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_pd_hard_reset'>
+ <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5433' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='tcpm_pd_receive' mangled-name='tcpm_pd_receive' filepath='drivers/usb/typec/tcpm/tcpm.c' line='2937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_pd_receive'>
@@ -157107,32 +157715,32 @@
<parameter type-id='a2f9e316' name='status' filepath='drivers/usb/typec/tcpm/tcpm.c' line='923' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='tcpm_register_port' mangled-name='tcpm_register_port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6408' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_register_port'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6408' column='1'/>
- <parameter type-id='15b1f129' name='tcpc' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6408' column='1'/>
+ <function-decl name='tcpm_register_port' mangled-name='tcpm_register_port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6407' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_register_port'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6407' column='1'/>
+ <parameter type-id='15b1f129' name='tcpc' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6407' column='1'/>
<return type-id='426e425b'/>
</function-decl>
- <function-decl name='tcpm_sink_frs' mangled-name='tcpm_sink_frs' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_sink_frs'>
- <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5443' column='1'/>
+ <function-decl name='tcpm_sink_frs' mangled-name='tcpm_sink_frs' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_sink_frs'>
+ <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5442' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='tcpm_sourcing_vbus' mangled-name='tcpm_sourcing_vbus' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_sourcing_vbus'>
- <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5452' column='1'/>
+ <function-decl name='tcpm_sourcing_vbus' mangled-name='tcpm_sourcing_vbus' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5451' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_sourcing_vbus'>
+ <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5451' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='tcpm_unregister_port' mangled-name='tcpm_unregister_port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_unregister_port'>
- <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6510' column='1'/>
+ <function-decl name='tcpm_unregister_port' mangled-name='tcpm_unregister_port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_unregister_port'>
+ <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6509' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='tcpm_update_sink_capabilities' mangled-name='tcpm_update_sink_capabilities' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_update_sink_capabilities'>
- <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6110' column='1'/>
- <parameter type-id='aded214c' name='pdo' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6110' column='1'/>
- <parameter type-id='f0981eeb' name='nr_pdo' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6110' column='1'/>
- <parameter type-id='f0981eeb' name='operating_snk_mw' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6111' column='1'/>
+ <function-decl name='tcpm_update_sink_capabilities' mangled-name='tcpm_update_sink_capabilities' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_update_sink_capabilities'>
+ <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6109' column='1'/>
+ <parameter type-id='aded214c' name='pdo' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6109' column='1'/>
+ <parameter type-id='f0981eeb' name='nr_pdo' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6109' column='1'/>
+ <parameter type-id='f0981eeb' name='operating_snk_mw' filepath='drivers/usb/typec/tcpm/tcpm.c' line='6110' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='tcpm_vbus_change' mangled-name='tcpm_vbus_change' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5425' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_vbus_change'>
- <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5425' column='1'/>
+ <function-decl name='tcpm_vbus_change' mangled-name='tcpm_vbus_change' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tcpm_vbus_change'>
+ <parameter type-id='426e425b' name='port' filepath='drivers/usb/typec/tcpm/tcpm.c' line='5424' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='thaw_bdev' mangled-name='thaw_bdev' filepath='block/bdev.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='thaw_bdev'>
@@ -157320,22 +157928,22 @@
<parameter type-id='b50a4934' name='multitouch' filepath='drivers/input/touchscreen.c' line='198' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='trace_array_destroy' mangled-name='trace_array_destroy' filepath='kernel/trace/trace.c' line='9393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_destroy'>
- <parameter type-id='898c1076' name='this_tr' filepath='kernel/trace/trace.c' line='9393' column='1'/>
+ <function-decl name='trace_array_destroy' mangled-name='trace_array_destroy' filepath='kernel/trace/trace.c' line='9404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_destroy'>
+ <parameter type-id='898c1076' name='this_tr' filepath='kernel/trace/trace.c' line='9404' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='trace_array_get_by_name' mangled-name='trace_array_get_by_name' filepath='kernel/trace/trace.c' line='9330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_get_by_name'>
- <parameter type-id='80f4b756' name='name' filepath='kernel/trace/trace.c' line='9330' column='1'/>
+ <function-decl name='trace_array_get_by_name' mangled-name='trace_array_get_by_name' filepath='kernel/trace/trace.c' line='9341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_get_by_name'>
+ <parameter type-id='80f4b756' name='name' filepath='kernel/trace/trace.c' line='9341' column='1'/>
<return type-id='898c1076'/>
</function-decl>
- <function-decl name='trace_array_init_printk' mangled-name='trace_array_init_printk' filepath='kernel/trace/trace.c' line='3519' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_init_printk'>
- <parameter type-id='898c1076' name='tr' filepath='kernel/trace/trace.c' line='3519' column='1'/>
+ <function-decl name='trace_array_init_printk' mangled-name='trace_array_init_printk' filepath='kernel/trace/trace.c' line='3520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_init_printk'>
+ <parameter type-id='898c1076' name='tr' filepath='kernel/trace/trace.c' line='3520' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='trace_array_printk' mangled-name='trace_array_printk' filepath='kernel/trace/trace.c' line='3488' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_printk'>
- <parameter type-id='898c1076' name='tr' filepath='kernel/trace/trace.c' line='3488' column='1'/>
- <parameter type-id='7359adad' name='ip' filepath='kernel/trace/trace.c' line='3489' column='1'/>
- <parameter type-id='80f4b756' name='fmt' filepath='kernel/trace/trace.c' line='3489' column='1'/>
+ <function-decl name='trace_array_printk' mangled-name='trace_array_printk' filepath='kernel/trace/trace.c' line='3489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_array_printk'>
+ <parameter type-id='898c1076' name='tr' filepath='kernel/trace/trace.c' line='3489' column='1'/>
+ <parameter type-id='7359adad' name='ip' filepath='kernel/trace/trace.c' line='3490' column='1'/>
+ <parameter type-id='80f4b756' name='fmt' filepath='kernel/trace/trace.c' line='3490' column='1'/>
<parameter is-variadic='yes'/>
<return type-id='95e97e5e'/>
</function-decl>
@@ -157356,8 +157964,8 @@
<parameter type-id='95e97e5e' name='filter_type' filepath='kernel/trace/trace_events.c' line='144' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='trace_event_buffer_commit' mangled-name='trace_event_buffer_commit' filepath='kernel/trace/trace.c' line='2907' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_buffer_commit'>
- <parameter type-id='9f548f9a' name='fbuffer' filepath='kernel/trace/trace.c' line='2907' column='1'/>
+ <function-decl name='trace_event_buffer_commit' mangled-name='trace_event_buffer_commit' filepath='kernel/trace/trace.c' line='2908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_buffer_commit'>
+ <parameter type-id='9f548f9a' name='fbuffer' filepath='kernel/trace/trace.c' line='2908' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='trace_event_buffer_reserve' mangled-name='trace_event_buffer_reserve' filepath='kernel/trace/trace_events.c' line='478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_event_buffer_reserve'>
@@ -157392,8 +158000,8 @@
<parameter type-id='80f4b756' name='event' filepath='kernel/trace/trace_events.c' line='3080' column='1'/>
<return type-id='3d4ca6d2'/>
</function-decl>
- <function-decl name='trace_handle_return' mangled-name='trace_handle_return' filepath='kernel/trace/trace.c' line='2598' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_handle_return'>
- <parameter type-id='fc932690' name='s' filepath='kernel/trace/trace.c' line='2598' column='1'/>
+ <function-decl name='trace_handle_return' mangled-name='trace_handle_return' filepath='kernel/trace/trace.c' line='2599' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_handle_return'>
+ <parameter type-id='fc932690' name='s' filepath='kernel/trace/trace.c' line='2599' column='1'/>
<return type-id='b1a0a119'/>
</function-decl>
<function-decl name='trace_output_call' mangled-name='trace_output_call' filepath='kernel/trace/trace_output.c' line='336' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='trace_output_call'>
@@ -157478,7 +158086,7 @@
<return type-id='95e97e5e'/>
</function-decl>
<var-decl name='tracepoint_srcu' type-id='e4a7867c' mangled-name='tracepoint_srcu' visibility='default' filepath='kernel/tracepoint.c' line='28' column='1' elf-symbol-id='tracepoint_srcu'/>
- <function-decl name='tracing_off' mangled-name='tracing_off' filepath='kernel/trace/trace.c' line='1440' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tracing_off'>
+ <function-decl name='tracing_off' mangled-name='tracing_off' filepath='kernel/trace/trace.c' line='1441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tracing_off'>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='truncate_inode_pages' mangled-name='truncate_inode_pages' filepath='mm/truncate.c' line='423' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='truncate_inode_pages'>
@@ -157520,11 +158128,11 @@
<parameter type-id='9248e67f' name='timer' filepath='kernel/time/timer.c' line='1229' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='try_to_free_mem_cgroup_pages' mangled-name='try_to_free_mem_cgroup_pages' filepath='mm/vmscan.c' line='6463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_to_free_mem_cgroup_pages'>
- <parameter type-id='223696fb' name='memcg' filepath='mm/vmscan.c' line='6463' column='1'/>
- <parameter type-id='7359adad' name='nr_pages' filepath='mm/vmscan.c' line='6464' column='1'/>
- <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/vmscan.c' line='6465' column='1'/>
- <parameter type-id='b50a4934' name='may_swap' filepath='mm/vmscan.c' line='6466' column='1'/>
+ <function-decl name='try_to_free_mem_cgroup_pages' mangled-name='try_to_free_mem_cgroup_pages' filepath='mm/vmscan.c' line='6462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_to_free_mem_cgroup_pages'>
+ <parameter type-id='223696fb' name='memcg' filepath='mm/vmscan.c' line='6462' column='1'/>
+ <parameter type-id='7359adad' name='nr_pages' filepath='mm/vmscan.c' line='6463' column='1'/>
+ <parameter type-id='3eb7c31c' name='gfp_mask' filepath='mm/vmscan.c' line='6464' column='1'/>
+ <parameter type-id='b50a4934' name='may_swap' filepath='mm/vmscan.c' line='6465' column='1'/>
<return type-id='7359adad'/>
</function-decl>
<function-decl name='try_to_release_page' mangled-name='try_to_release_page' filepath='mm/filemap.c' line='4015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='try_to_release_page'>
@@ -157821,6 +158429,10 @@
<parameter type-id='ec77b5b8' name='port' filepath='drivers/tty/tty_buffer.c' line='556' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
+ <function-decl name='tty_get_char_size' mangled-name='tty_get_char_size' filepath='drivers/tty/tty_ioctl.c' line='289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_get_char_size'>
+ <parameter type-id='f0981eeb' name='cflag' filepath='drivers/tty/tty_ioctl.c' line='289' column='1'/>
+ <return type-id='002ac4a6'/>
+ </function-decl>
<function-decl name='tty_hangup' mangled-name='tty_hangup' filepath='drivers/tty/tty_io.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='tty_hangup'>
<parameter type-id='572fbdca' name='tty' filepath='drivers/tty/tty_io.c' line='692' column='1'/>
<return type-id='48b5725f'/>
@@ -158216,14 +158828,14 @@
<parameter type-id='36cb26c7' name='audio_dev' filepath='drivers/usb/gadget/function/u_audio.c' line='626' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='uart_add_one_port' mangled-name='uart_add_one_port' filepath='drivers/tty/serial/serial_core.c' line='2909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_add_one_port'>
- <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2909' column='1'/>
- <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2909' column='1'/>
+ <function-decl name='uart_add_one_port' mangled-name='uart_add_one_port' filepath='drivers/tty/serial/serial_core.c' line='2910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_add_one_port'>
+ <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2910' column='1'/>
+ <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2910' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='uart_console_device' mangled-name='uart_console_device' filepath='drivers/tty/serial/serial_core.c' line='2666' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_console_device'>
- <parameter type-id='b9aa0100' name='co' filepath='drivers/tty/serial/serial_core.c' line='2666' column='1'/>
- <parameter type-id='7292109c' name='index' filepath='drivers/tty/serial/serial_core.c' line='2666' column='1'/>
+ <function-decl name='uart_console_device' mangled-name='uart_console_device' filepath='drivers/tty/serial/serial_core.c' line='2667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_console_device'>
+ <parameter type-id='b9aa0100' name='co' filepath='drivers/tty/serial/serial_core.c' line='2667' column='1'/>
+ <parameter type-id='7292109c' name='index' filepath='drivers/tty/serial/serial_core.c' line='2667' column='1'/>
<return type-id='c2b4b27b'/>
</function-decl>
<function-decl name='uart_console_write' mangled-name='uart_console_write' filepath='drivers/tty/serial/serial_core.c' line='1962' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_console_write'>
@@ -158246,26 +158858,26 @@
<parameter type-id='f0981eeb' name='baud' filepath='drivers/tty/serial/serial_core.c' line='459' column='1'/>
<return type-id='f0981eeb'/>
</function-decl>
- <function-decl name='uart_get_rs485_mode' mangled-name='uart_get_rs485_mode' filepath='drivers/tty/serial/serial_core.c' line='3270' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_get_rs485_mode'>
- <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3270' column='1'/>
+ <function-decl name='uart_get_rs485_mode' mangled-name='uart_get_rs485_mode' filepath='drivers/tty/serial/serial_core.c' line='3271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_get_rs485_mode'>
+ <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3271' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='uart_handle_cts_change' mangled-name='uart_handle_cts_change' filepath='drivers/tty/serial/serial_core.c' line='3150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_handle_cts_change'>
- <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3150' column='1'/>
- <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3150' column='1'/>
+ <function-decl name='uart_handle_cts_change' mangled-name='uart_handle_cts_change' filepath='drivers/tty/serial/serial_core.c' line='3151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_handle_cts_change'>
+ <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3151' column='1'/>
+ <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3151' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='uart_handle_dcd_change' mangled-name='uart_handle_dcd_change' filepath='drivers/tty/serial/serial_core.c' line='3115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_handle_dcd_change'>
- <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3115' column='1'/>
- <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3115' column='1'/>
+ <function-decl name='uart_handle_dcd_change' mangled-name='uart_handle_dcd_change' filepath='drivers/tty/serial/serial_core.c' line='3116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_handle_dcd_change'>
+ <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3116' column='1'/>
+ <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3116' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='uart_insert_char' mangled-name='uart_insert_char' filepath='drivers/tty/serial/serial_core.c' line='3186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_insert_char'>
- <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3186' column='1'/>
- <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3186' column='1'/>
- <parameter type-id='f0981eeb' name='overrun' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
- <parameter type-id='f0981eeb' name='ch' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
- <parameter type-id='f0981eeb' name='flag' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
+ <function-decl name='uart_insert_char' mangled-name='uart_insert_char' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_insert_char'>
+ <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
+ <parameter type-id='f0981eeb' name='status' filepath='drivers/tty/serial/serial_core.c' line='3187' column='1'/>
+ <parameter type-id='f0981eeb' name='overrun' filepath='drivers/tty/serial/serial_core.c' line='3188' column='1'/>
+ <parameter type-id='f0981eeb' name='ch' filepath='drivers/tty/serial/serial_core.c' line='3188' column='1'/>
+ <parameter type-id='f0981eeb' name='flag' filepath='drivers/tty/serial/serial_core.c' line='3188' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='uart_parse_options' mangled-name='uart_parse_options' filepath='drivers/tty/serial/serial_core.c' line='2073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_parse_options'>
@@ -158276,18 +158888,18 @@
<parameter type-id='7292109c' name='flow' filepath='drivers/tty/serial/serial_core.c' line='2074' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='uart_register_driver' mangled-name='uart_register_driver' filepath='drivers/tty/serial/serial_core.c' line='2583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_register_driver'>
- <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2583' column='1'/>
+ <function-decl name='uart_register_driver' mangled-name='uart_register_driver' filepath='drivers/tty/serial/serial_core.c' line='2584' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_register_driver'>
+ <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2584' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='uart_remove_one_port' mangled-name='uart_remove_one_port' filepath='drivers/tty/serial/serial_core.c' line='3011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_remove_one_port'>
- <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='3011' column='1'/>
- <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3011' column='1'/>
+ <function-decl name='uart_remove_one_port' mangled-name='uart_remove_one_port' filepath='drivers/tty/serial/serial_core.c' line='3012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_remove_one_port'>
+ <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='3012' column='1'/>
+ <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='3012' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='uart_resume_port' mangled-name='uart_resume_port' filepath='drivers/tty/serial/serial_core.c' line='2257' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_resume_port'>
- <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2257' column='1'/>
- <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2257' column='1'/>
+ <function-decl name='uart_resume_port' mangled-name='uart_resume_port' filepath='drivers/tty/serial/serial_core.c' line='2258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_resume_port'>
+ <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2258' column='1'/>
+ <parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2258' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='uart_set_options' mangled-name='uart_set_options' filepath='drivers/tty/serial/serial_core.c' line='2100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_set_options'>
@@ -158304,13 +158916,13 @@
<parameter type-id='af051c69' name='uport' filepath='drivers/tty/serial/serial_core.c' line='2195' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='uart_try_toggle_sysrq' mangled-name='uart_try_toggle_sysrq' filepath='drivers/tty/serial/serial_core.c' line='3229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_try_toggle_sysrq'>
- <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3229' column='1'/>
- <parameter type-id='f0981eeb' name='ch' filepath='drivers/tty/serial/serial_core.c' line='3229' column='1'/>
+ <function-decl name='uart_try_toggle_sysrq' mangled-name='uart_try_toggle_sysrq' filepath='drivers/tty/serial/serial_core.c' line='3230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_try_toggle_sysrq'>
+ <parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='3230' column='1'/>
+ <parameter type-id='f0981eeb' name='ch' filepath='drivers/tty/serial/serial_core.c' line='3230' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='uart_unregister_driver' mangled-name='uart_unregister_driver' filepath='drivers/tty/serial/serial_core.c' line='2652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_unregister_driver'>
- <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2652' column='1'/>
+ <function-decl name='uart_unregister_driver' mangled-name='uart_unregister_driver' filepath='drivers/tty/serial/serial_core.c' line='2653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_unregister_driver'>
+ <parameter type-id='04a219de' name='drv' filepath='drivers/tty/serial/serial_core.c' line='2653' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='uart_update_timeout' mangled-name='uart_update_timeout' filepath='drivers/tty/serial/serial_core.c' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uart_update_timeout'>
@@ -158323,9 +158935,9 @@
<parameter type-id='af051c69' name='port' filepath='drivers/tty/serial/serial_core.c' line='103' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='uclamp_eff_value' mangled-name='uclamp_eff_value' filepath='kernel/sched/core.c' line='1507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uclamp_eff_value'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='1507' column='1'/>
- <parameter type-id='db819146' name='clamp_id' filepath='kernel/sched/core.c' line='1507' column='1'/>
+ <function-decl name='uclamp_eff_value' mangled-name='uclamp_eff_value' filepath='kernel/sched/core.c' line='1504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uclamp_eff_value'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='1504' column='1'/>
+ <parameter type-id='db819146' name='clamp_id' filepath='kernel/sched/core.c' line='1504' column='1'/>
<return type-id='7359adad'/>
</function-decl>
<function-decl name='ucsi_connector_change' mangled-name='ucsi_connector_change' filepath='drivers/usb/typec/ucsi/ucsi.c' line='848' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ucsi_connector_change'>
@@ -158379,36 +158991,36 @@
<parameter type-id='b5952621' name='str_t' filepath='drivers/scsi/ufs/ufshcd.c' line='379' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='ufshcd_alloc_host' mangled-name='ufshcd_alloc_host' filepath='drivers/scsi/ufs/ufshcd.c' line='9496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_alloc_host'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9496' column='1'/>
- <parameter type-id='f38ff799' name='hba_handle' filepath='drivers/scsi/ufs/ufshcd.c' line='9496' column='1'/>
+ <function-decl name='ufshcd_alloc_host' mangled-name='ufshcd_alloc_host' filepath='drivers/scsi/ufs/ufshcd.c' line='9586' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_alloc_host'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9586' column='1'/>
+ <parameter type-id='f38ff799' name='hba_handle' filepath='drivers/scsi/ufs/ufshcd.c' line='9586' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_auto_hibern8_update' mangled-name='ufshcd_auto_hibern8_update' filepath='drivers/scsi/ufs/ufshcd.c' line='4224' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_auto_hibern8_update'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4224' column='1'/>
- <parameter type-id='19c2251e' name='ahit' filepath='drivers/scsi/ufs/ufshcd.c' line='4224' column='1'/>
+ <function-decl name='ufshcd_auto_hibern8_update' mangled-name='ufshcd_auto_hibern8_update' filepath='drivers/scsi/ufs/ufshcd.c' line='4237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_auto_hibern8_update'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4237' column='1'/>
+ <parameter type-id='19c2251e' name='ahit' filepath='drivers/scsi/ufs/ufshcd.c' line='4237' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='ufshcd_bkops_ctrl' mangled-name='ufshcd_bkops_ctrl' filepath='drivers/scsi/ufs/ufshcd.c' line='5635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_bkops_ctrl'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='5635' column='1'/>
- <parameter type-id='462d2624' name='status' filepath='drivers/scsi/ufs/ufshcd.c' line='5636' column='1'/>
+ <function-decl name='ufshcd_bkops_ctrl' mangled-name='ufshcd_bkops_ctrl' filepath='drivers/scsi/ufs/ufshcd.c' line='5648' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_bkops_ctrl'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='5648' column='1'/>
+ <parameter type-id='462d2624' name='status' filepath='drivers/scsi/ufs/ufshcd.c' line='5649' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_clk_scaling_start_busy' mangled-name='ufshcd_clk_scaling_start_busy' filepath='drivers/scsi/ufs/ufshcd.c' line='2013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_clk_scaling_start_busy'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='2013' column='1'/>
+ <function-decl name='ufshcd_clk_scaling_start_busy' mangled-name='ufshcd_clk_scaling_start_busy' filepath='drivers/scsi/ufs/ufshcd.c' line='2017' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_clk_scaling_start_busy'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='2017' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='ufshcd_clk_scaling_update_busy' mangled-name='ufshcd_clk_scaling_update_busy' filepath='drivers/scsi/ufs/ufshcd.c' line='2049' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_clk_scaling_update_busy'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='2049' column='1'/>
+ <function-decl name='ufshcd_clk_scaling_update_busy' mangled-name='ufshcd_clk_scaling_update_busy' filepath='drivers/scsi/ufs/ufshcd.c' line='2053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_clk_scaling_update_busy'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='2053' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='ufshcd_config_pwr_mode' mangled-name='ufshcd_config_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_config_pwr_mode'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4434' column='1'/>
- <parameter type-id='35f4156d' name='desired_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4435' column='1'/>
+ <function-decl name='ufshcd_config_pwr_mode' mangled-name='ufshcd_config_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_config_pwr_mode'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4447' column='1'/>
+ <parameter type-id='35f4156d' name='desired_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4448' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_dealloc_host' mangled-name='ufshcd_dealloc_host' filepath='drivers/scsi/ufs/ufshcd.c' line='9468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dealloc_host'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9468' column='1'/>
+ <function-decl name='ufshcd_dealloc_host' mangled-name='ufshcd_dealloc_host' filepath='drivers/scsi/ufs/ufshcd.c' line='9558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dealloc_host'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9558' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='ufshcd_delay_us' mangled-name='ufshcd_delay_us' filepath='drivers/scsi/ufs/ufshcd.c' line='632' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_delay_us'>
@@ -158416,25 +159028,25 @@
<parameter type-id='7359adad' name='tolerance' filepath='drivers/scsi/ufs/ufshcd.c' line='632' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='ufshcd_dme_configure_adapt' mangled-name='ufshcd_dme_configure_adapt' filepath='drivers/scsi/ufs/ufshcd.c' line='3822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_configure_adapt'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3822' column='1'/>
- <parameter type-id='95e97e5e' name='agreed_gear' filepath='drivers/scsi/ufs/ufshcd.c' line='3823' column='1'/>
- <parameter type-id='95e97e5e' name='adapt_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3824' column='1'/>
+ <function-decl name='ufshcd_dme_configure_adapt' mangled-name='ufshcd_dme_configure_adapt' filepath='drivers/scsi/ufs/ufshcd.c' line='3835' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_configure_adapt'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3835' column='1'/>
+ <parameter type-id='95e97e5e' name='agreed_gear' filepath='drivers/scsi/ufs/ufshcd.c' line='3836' column='1'/>
+ <parameter type-id='95e97e5e' name='adapt_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3837' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_dme_get_attr' mangled-name='ufshcd_dme_get_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3946' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_get_attr'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3946' column='1'/>
- <parameter type-id='19c2251e' name='attr_sel' filepath='drivers/scsi/ufs/ufshcd.c' line='3946' column='1'/>
- <parameter type-id='f9409001' name='mib_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3947' column='1'/>
- <parameter type-id='f9b06939' name='peer' filepath='drivers/scsi/ufs/ufshcd.c' line='3947' column='1'/>
+ <function-decl name='ufshcd_dme_get_attr' mangled-name='ufshcd_dme_get_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_get_attr'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3959' column='1'/>
+ <parameter type-id='19c2251e' name='attr_sel' filepath='drivers/scsi/ufs/ufshcd.c' line='3959' column='1'/>
+ <parameter type-id='f9409001' name='mib_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3960' column='1'/>
+ <parameter type-id='f9b06939' name='peer' filepath='drivers/scsi/ufs/ufshcd.c' line='3960' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_dme_set_attr' mangled-name='ufshcd_dme_set_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3902' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_set_attr'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3902' column='1'/>
- <parameter type-id='19c2251e' name='attr_sel' filepath='drivers/scsi/ufs/ufshcd.c' line='3902' column='1'/>
- <parameter type-id='f9b06939' name='attr_set' filepath='drivers/scsi/ufs/ufshcd.c' line='3903' column='1'/>
- <parameter type-id='19c2251e' name='mib_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3903' column='1'/>
- <parameter type-id='f9b06939' name='peer' filepath='drivers/scsi/ufs/ufshcd.c' line='3903' column='1'/>
+ <function-decl name='ufshcd_dme_set_attr' mangled-name='ufshcd_dme_set_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dme_set_attr'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3915' column='1'/>
+ <parameter type-id='19c2251e' name='attr_sel' filepath='drivers/scsi/ufs/ufshcd.c' line='3915' column='1'/>
+ <parameter type-id='f9b06939' name='attr_set' filepath='drivers/scsi/ufs/ufshcd.c' line='3916' column='1'/>
+ <parameter type-id='19c2251e' name='mib_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3916' column='1'/>
+ <parameter type-id='f9b06939' name='peer' filepath='drivers/scsi/ufs/ufshcd.c' line='3916' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='ufshcd_dump_regs' mangled-name='ufshcd_dump_regs' filepath='drivers/scsi/ufs/ufshcd.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_dump_regs'>
@@ -158444,9 +159056,9 @@
<parameter type-id='80f4b756' name='prefix' filepath='drivers/scsi/ufs/ufshcd.c' line='106' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_fixup_dev_quirks' mangled-name='ufshcd_fixup_dev_quirks' filepath='drivers/scsi/ufs/ufshcd.c' line='7606' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_fixup_dev_quirks'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='7606' column='1'/>
- <parameter type-id='c5251c27' name='fixups' filepath='drivers/scsi/ufs/ufshcd.c' line='7606' column='1'/>
+ <function-decl name='ufshcd_fixup_dev_quirks' mangled-name='ufshcd_fixup_dev_quirks' filepath='drivers/scsi/ufs/ufshcd.c' line='7626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_fixup_dev_quirks'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='7626' column='1'/>
+ <parameter type-id='c5251c27' name='fixups' filepath='drivers/scsi/ufs/ufshcd.c' line='7626' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='ufshcd_get_local_unipro_ver' mangled-name='ufshcd_get_local_unipro_ver' filepath='drivers/scsi/ufs/ufshcd.c' line='936' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_get_local_unipro_ver'>
@@ -158459,40 +159071,40 @@
<parameter type-id='35f4156d' name='agreed_pwr' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='224' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_get_vreg' mangled-name='ufshcd_get_vreg' filepath='drivers/scsi/ufs/ufshcd.c' line='8393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_get_vreg'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='8393' column='1'/>
- <parameter type-id='ae670bfa' name='vreg' filepath='drivers/scsi/ufs/ufshcd.c' line='8393' column='1'/>
+ <function-decl name='ufshcd_get_vreg' mangled-name='ufshcd_get_vreg' filepath='drivers/scsi/ufs/ufshcd.c' line='8413' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_get_vreg'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='8413' column='1'/>
+ <parameter type-id='ae670bfa' name='vreg' filepath='drivers/scsi/ufs/ufshcd.c' line='8413' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_hba_enable' mangled-name='ufshcd_hba_enable' filepath='drivers/scsi/ufs/ufshcd.c' line='4650' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hba_enable'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4650' column='1'/>
+ <function-decl name='ufshcd_hba_enable' mangled-name='ufshcd_hba_enable' filepath='drivers/scsi/ufs/ufshcd.c' line='4663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hba_enable'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4663' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_hba_stop' mangled-name='ufshcd_hba_stop' filepath='drivers/scsi/ufs/ufshcd.c' line='4564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hba_stop'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4564' column='1'/>
+ <function-decl name='ufshcd_hba_stop' mangled-name='ufshcd_hba_stop' filepath='drivers/scsi/ufs/ufshcd.c' line='4577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hba_stop'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4577' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='ufshcd_hold' mangled-name='ufshcd_hold' filepath='drivers/scsi/ufs/ufshcd.c' line='1699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hold'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='1699' column='1'/>
- <parameter type-id='b50a4934' name='async' filepath='drivers/scsi/ufs/ufshcd.c' line='1699' column='1'/>
+ <function-decl name='ufshcd_hold' mangled-name='ufshcd_hold' filepath='drivers/scsi/ufs/ufshcd.c' line='1703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_hold'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='1703' column='1'/>
+ <parameter type-id='b50a4934' name='async' filepath='drivers/scsi/ufs/ufshcd.c' line='1703' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='ufshcd_init_pwr_dev_param' mangled-name='ufshcd_init_pwr_dev_param' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='310' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_init_pwr_dev_param'>
<parameter type-id='9c02cf50' name='dev_param' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='310' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='ufshcd_link_recovery' mangled-name='ufshcd_link_recovery' filepath='drivers/scsi/ufs/ufshcd.c' line='4144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_link_recovery'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4144' column='1'/>
+ <function-decl name='ufshcd_link_recovery' mangled-name='ufshcd_link_recovery' filepath='drivers/scsi/ufs/ufshcd.c' line='4157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_link_recovery'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4157' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_make_hba_operational' mangled-name='ufshcd_make_hba_operational' filepath='drivers/scsi/ufs/ufshcd.c' line='4509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_make_hba_operational'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4509' column='1'/>
+ <function-decl name='ufshcd_make_hba_operational' mangled-name='ufshcd_make_hba_operational' filepath='drivers/scsi/ufs/ufshcd.c' line='4522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_make_hba_operational'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4522' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_map_desc_id_to_length' mangled-name='ufshcd_map_desc_id_to_length' filepath='drivers/scsi/ufs/ufshcd.c' line='3356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_map_desc_id_to_length'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3356' column='1'/>
- <parameter type-id='32c9d5cb' name='desc_id' filepath='drivers/scsi/ufs/ufshcd.c' line='3356' column='1'/>
- <parameter type-id='7292109c' name='desc_len' filepath='drivers/scsi/ufs/ufshcd.c' line='3357' column='1'/>
+ <function-decl name='ufshcd_map_desc_id_to_length' mangled-name='ufshcd_map_desc_id_to_length' filepath='drivers/scsi/ufs/ufshcd.c' line='3369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_map_desc_id_to_length'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3369' column='1'/>
+ <parameter type-id='32c9d5cb' name='desc_id' filepath='drivers/scsi/ufs/ufshcd.c' line='3369' column='1'/>
+ <parameter type-id='7292109c' name='desc_len' filepath='drivers/scsi/ufs/ufshcd.c' line='3370' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='ufshcd_pltfrm_init' mangled-name='ufshcd_pltfrm_init' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_pltfrm_init'>
@@ -158510,117 +159122,129 @@
<parameter type-id='5c379870' name='out_vreg' filepath='drivers/scsi/ufs/ufshcd-pltfrm.c' line='123' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_query_attr' mangled-name='ufshcd_query_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_attr'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3163' column='1'/>
- <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3163' column='1'/>
- <parameter type-id='75eb1735' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3164' column='1'/>
- <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3164' column='1'/>
- <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3164' column='1'/>
- <parameter type-id='f9409001' name='attr_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3164' column='1'/>
+ <function-decl name='ufshcd_query_attr' mangled-name='ufshcd_query_attr' filepath='drivers/scsi/ufs/ufshcd.c' line='3176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_attr'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3176' column='1'/>
+ <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3176' column='1'/>
+ <parameter type-id='75eb1735' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3177' column='1'/>
+ <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3177' column='1'/>
+ <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3177' column='1'/>
+ <parameter type-id='f9409001' name='attr_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3177' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_query_attr_retry' mangled-name='ufshcd_query_attr_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_attr_retry'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3229' column='1'/>
- <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3230' column='1'/>
- <parameter type-id='75eb1735' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3230' column='1'/>
- <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3230' column='1'/>
- <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3230' column='1'/>
- <parameter type-id='f9409001' name='attr_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3231' column='1'/>
+ <function-decl name='ufshcd_query_attr_retry' mangled-name='ufshcd_query_attr_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_attr_retry'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3242' column='1'/>
+ <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3243' column='1'/>
+ <parameter type-id='75eb1735' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3243' column='1'/>
+ <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3243' column='1'/>
+ <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3243' column='1'/>
+ <parameter type-id='f9409001' name='attr_val' filepath='drivers/scsi/ufs/ufshcd.c' line='3244' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_query_descriptor_retry' mangled-name='ufshcd_query_descriptor_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_descriptor_retry'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3330' column='1'/>
- <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3331' column='1'/>
- <parameter type-id='32c9d5cb' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3332' column='1'/>
- <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3332' column='1'/>
- <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3333' column='1'/>
- <parameter type-id='8bff8096' name='desc_buf' filepath='drivers/scsi/ufs/ufshcd.c' line='3334' column='1'/>
- <parameter type-id='7292109c' name='buf_len' filepath='drivers/scsi/ufs/ufshcd.c' line='3334' column='1'/>
+ <function-decl name='ufshcd_query_descriptor_retry' mangled-name='ufshcd_query_descriptor_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_descriptor_retry'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3343' column='1'/>
+ <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3344' column='1'/>
+ <parameter type-id='32c9d5cb' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3345' column='1'/>
+ <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3345' column='1'/>
+ <parameter type-id='f9b06939' name='selector' filepath='drivers/scsi/ufs/ufshcd.c' line='3346' column='1'/>
+ <parameter type-id='8bff8096' name='desc_buf' filepath='drivers/scsi/ufs/ufshcd.c' line='3347' column='1'/>
+ <parameter type-id='7292109c' name='buf_len' filepath='drivers/scsi/ufs/ufshcd.c' line='3347' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_query_flag' mangled-name='ufshcd_query_flag' filepath='drivers/scsi/ufs/ufshcd.c' line='3093' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_flag'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3093' column='1'/>
- <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3093' column='1'/>
- <parameter type-id='92ace17c' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3094' column='1'/>
- <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3094' column='1'/>
- <parameter type-id='d8e6b335' name='flag_res' filepath='drivers/scsi/ufs/ufshcd.c' line='3094' column='1'/>
+ <function-decl name='ufshcd_query_flag' mangled-name='ufshcd_query_flag' filepath='drivers/scsi/ufs/ufshcd.c' line='3106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_flag'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3106' column='1'/>
+ <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3106' column='1'/>
+ <parameter type-id='92ace17c' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3107' column='1'/>
+ <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3107' column='1'/>
+ <parameter type-id='d8e6b335' name='flag_res' filepath='drivers/scsi/ufs/ufshcd.c' line='3107' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_query_flag_retry' mangled-name='ufshcd_query_flag_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3059' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_flag_retry'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3059' column='1'/>
- <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3060' column='1'/>
- <parameter type-id='92ace17c' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3060' column='1'/>
- <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3060' column='1'/>
- <parameter type-id='d8e6b335' name='flag_res' filepath='drivers/scsi/ufs/ufshcd.c' line='3060' column='1'/>
+ <function-decl name='ufshcd_query_flag_retry' mangled-name='ufshcd_query_flag_retry' filepath='drivers/scsi/ufs/ufshcd.c' line='3072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_query_flag_retry'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3072' column='1'/>
+ <parameter type-id='5f757f13' name='opcode' filepath='drivers/scsi/ufs/ufshcd.c' line='3073' column='1'/>
+ <parameter type-id='92ace17c' name='idn' filepath='drivers/scsi/ufs/ufshcd.c' line='3073' column='1'/>
+ <parameter type-id='f9b06939' name='index' filepath='drivers/scsi/ufs/ufshcd.c' line='3073' column='1'/>
+ <parameter type-id='d8e6b335' name='flag_res' filepath='drivers/scsi/ufs/ufshcd.c' line='3073' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_read_desc_param' mangled-name='ufshcd_read_desc_param' filepath='drivers/scsi/ufs/ufshcd.c' line='3392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_read_desc_param'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3392' column='1'/>
- <parameter type-id='32c9d5cb' name='desc_id' filepath='drivers/scsi/ufs/ufshcd.c' line='3393' column='1'/>
- <parameter type-id='95e97e5e' name='desc_index' filepath='drivers/scsi/ufs/ufshcd.c' line='3394' column='1'/>
- <parameter type-id='f9b06939' name='param_offset' filepath='drivers/scsi/ufs/ufshcd.c' line='3395' column='1'/>
- <parameter type-id='8bff8096' name='param_read_buf' filepath='drivers/scsi/ufs/ufshcd.c' line='3396' column='1'/>
- <parameter type-id='f9b06939' name='param_size' filepath='drivers/scsi/ufs/ufshcd.c' line='3397' column='1'/>
+ <function-decl name='ufshcd_read_desc_param' mangled-name='ufshcd_read_desc_param' filepath='drivers/scsi/ufs/ufshcd.c' line='3405' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_read_desc_param'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='3405' column='1'/>
+ <parameter type-id='32c9d5cb' name='desc_id' filepath='drivers/scsi/ufs/ufshcd.c' line='3406' column='1'/>
+ <parameter type-id='95e97e5e' name='desc_index' filepath='drivers/scsi/ufs/ufshcd.c' line='3407' column='1'/>
+ <parameter type-id='f9b06939' name='param_offset' filepath='drivers/scsi/ufs/ufshcd.c' line='3408' column='1'/>
+ <parameter type-id='8bff8096' name='param_read_buf' filepath='drivers/scsi/ufs/ufshcd.c' line='3409' column='1'/>
+ <parameter type-id='f9b06939' name='param_size' filepath='drivers/scsi/ufs/ufshcd.c' line='3410' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_release' mangled-name='ufshcd_release' filepath='drivers/scsi/ufs/ufshcd.c' line='1878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_release'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='1878' column='1'/>
+ <function-decl name='ufshcd_release' mangled-name='ufshcd_release' filepath='drivers/scsi/ufs/ufshcd.c' line='1882' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_release'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='1882' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='ufshcd_remove' mangled-name='ufshcd_remove' filepath='drivers/scsi/ufs/ufshcd.c' line='9445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_remove'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9445' column='1'/>
+ <function-decl name='ufshcd_remove' mangled-name='ufshcd_remove' filepath='drivers/scsi/ufs/ufshcd.c' line='9485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_remove'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9485' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='ufshcd_resume_complete' mangled-name='ufshcd_resume_complete' filepath='drivers/scsi/ufs/ufshcd.c' line='9777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_resume_complete'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9777' column='1'/>
+ <function-decl name='ufshcd_resume_complete' mangled-name='ufshcd_resume_complete' filepath='drivers/scsi/ufs/ufshcd.c' line='9867' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_resume_complete'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9867' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='ufshcd_runtime_resume' mangled-name='ufshcd_runtime_resume' filepath='drivers/scsi/ufs/ufshcd.c' line='9404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_runtime_resume'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9404' column='1'/>
+ <function-decl name='ufshcd_runtime_resume' mangled-name='ufshcd_runtime_resume' filepath='drivers/scsi/ufs/ufshcd.c' line='9444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_runtime_resume'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9444' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_runtime_suspend' mangled-name='ufshcd_runtime_suspend' filepath='drivers/scsi/ufs/ufshcd.c' line='9379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_runtime_suspend'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9379' column='1'/>
+ <function-decl name='ufshcd_runtime_suspend' mangled-name='ufshcd_runtime_suspend' filepath='drivers/scsi/ufs/ufshcd.c' line='9419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_runtime_suspend'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9419' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_shutdown' mangled-name='ufshcd_shutdown' filepath='drivers/scsi/ufs/ufshcd.c' line='9429' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_shutdown'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9429' column='1'/>
+ <function-decl name='ufshcd_shutdown' mangled-name='ufshcd_shutdown' filepath='drivers/scsi/ufs/ufshcd.c' line='9469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_shutdown'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='9469' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_suspend_prepare' mangled-name='ufshcd_suspend_prepare' filepath='drivers/scsi/ufs/ufshcd.c' line='9788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_suspend_prepare'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9788' column='1'/>
+ <function-decl name='ufshcd_suspend_prepare' mangled-name='ufshcd_suspend_prepare' filepath='drivers/scsi/ufs/ufshcd.c' line='9878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_suspend_prepare'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9878' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_system_resume' mangled-name='ufshcd_system_resume' filepath='drivers/scsi/ufs/ufshcd.c' line='9349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_resume'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9349' column='1'/>
+ <function-decl name='ufshcd_system_freeze' mangled-name='ufshcd_system_freeze' filepath='drivers/scsi/ufs/ufshcd.c' line='9505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_freeze'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9505' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_system_suspend' mangled-name='ufshcd_system_suspend' filepath='drivers/scsi/ufs/ufshcd.c' line='9322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_suspend'>
- <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9322' column='1'/>
+ <function-decl name='ufshcd_system_restore' mangled-name='ufshcd_system_restore' filepath='drivers/scsi/ufs/ufshcd.c' line='9513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_restore'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9513' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_transfer_rsp_status' mangled-name='ufshcd_transfer_rsp_status' filepath='drivers/scsi/ufs/ufshcd.c' line='5174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_transfer_rsp_status'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='5174' column='1'/>
- <parameter type-id='6ca6fa6d' name='lrbp' filepath='drivers/scsi/ufs/ufshcd.c' line='5174' column='1'/>
+ <function-decl name='ufshcd_system_resume' mangled-name='ufshcd_system_resume' filepath='drivers/scsi/ufs/ufshcd.c' line='9389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_resume'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9389' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_uic_change_pwr_mode' mangled-name='ufshcd_uic_change_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_change_pwr_mode'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4117' column='1'/>
- <parameter type-id='f9b06939' name='mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4117' column='1'/>
+ <function-decl name='ufshcd_system_suspend' mangled-name='ufshcd_system_suspend' filepath='drivers/scsi/ufs/ufshcd.c' line='9362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_suspend'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9362' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_uic_hibern8_enter' mangled-name='ufshcd_uic_hibern8_enter' filepath='drivers/scsi/ufs/ufshcd.c' line='4173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_hibern8_enter'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4173' column='1'/>
+ <function-decl name='ufshcd_system_thaw' mangled-name='ufshcd_system_thaw' filepath='drivers/scsi/ufs/ufshcd.c' line='9547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_system_thaw'>
+ <parameter type-id='fa0b179b' name='dev' filepath='drivers/scsi/ufs/ufshcd.c' line='9547' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_uic_hibern8_exit' mangled-name='ufshcd_uic_hibern8_exit' filepath='drivers/scsi/ufs/ufshcd.c' line='4197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_hibern8_exit'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4197' column='1'/>
+ <function-decl name='ufshcd_transfer_rsp_status' mangled-name='ufshcd_transfer_rsp_status' filepath='drivers/scsi/ufs/ufshcd.c' line='5187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_transfer_rsp_status'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='5187' column='1'/>
+ <parameter type-id='6ca6fa6d' name='lrbp' filepath='drivers/scsi/ufs/ufshcd.c' line='5187' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ufshcd_update_evt_hist' mangled-name='ufshcd_update_evt_hist' filepath='drivers/scsi/ufs/ufshcd.c' line='4713' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_update_evt_hist'>
- <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4713' column='1'/>
- <parameter type-id='19c2251e' name='id' filepath='drivers/scsi/ufs/ufshcd.c' line='4713' column='1'/>
- <parameter type-id='19c2251e' name='val' filepath='drivers/scsi/ufs/ufshcd.c' line='4713' column='1'/>
+ <function-decl name='ufshcd_uic_change_pwr_mode' mangled-name='ufshcd_uic_change_pwr_mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_change_pwr_mode'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4130' column='1'/>
+ <parameter type-id='f9b06939' name='mode' filepath='drivers/scsi/ufs/ufshcd.c' line='4130' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='ufshcd_uic_hibern8_enter' mangled-name='ufshcd_uic_hibern8_enter' filepath='drivers/scsi/ufs/ufshcd.c' line='4186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_hibern8_enter'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4186' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='ufshcd_uic_hibern8_exit' mangled-name='ufshcd_uic_hibern8_exit' filepath='drivers/scsi/ufs/ufshcd.c' line='4210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_uic_hibern8_exit'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4210' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
+ <function-decl name='ufshcd_update_evt_hist' mangled-name='ufshcd_update_evt_hist' filepath='drivers/scsi/ufs/ufshcd.c' line='4726' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ufshcd_update_evt_hist'>
+ <parameter type-id='442b8d89' name='hba' filepath='drivers/scsi/ufs/ufshcd.c' line='4726' column='1'/>
+ <parameter type-id='19c2251e' name='id' filepath='drivers/scsi/ufs/ufshcd.c' line='4726' column='1'/>
+ <parameter type-id='19c2251e' name='val' filepath='drivers/scsi/ufs/ufshcd.c' line='4726' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='uio_unregister_device' mangled-name='uio_unregister_device' filepath='drivers/uio/uio.c' line='1042' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='uio_unregister_device'>
@@ -158643,11 +159267,11 @@
<parameter type-id='02f11ed4' name='page' filepath='mm/filemap.c' line='1507' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='unmap_mapping_range' mangled-name='unmap_mapping_range' filepath='mm/memory.c' line='3612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unmap_mapping_range'>
- <parameter type-id='f57039f0' name='mapping' filepath='mm/memory.c' line='3612' column='1'/>
- <parameter type-id='bf352dfe' name='holebegin' filepath='mm/memory.c' line='3613' column='1'/>
- <parameter type-id='bf352dfe' name='holelen' filepath='mm/memory.c' line='3613' column='1'/>
- <parameter type-id='95e97e5e' name='even_cows' filepath='mm/memory.c' line='3613' column='1'/>
+ <function-decl name='unmap_mapping_range' mangled-name='unmap_mapping_range' filepath='mm/memory.c' line='3625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unmap_mapping_range'>
+ <parameter type-id='f57039f0' name='mapping' filepath='mm/memory.c' line='3625' column='1'/>
+ <parameter type-id='bf352dfe' name='holebegin' filepath='mm/memory.c' line='3626' column='1'/>
+ <parameter type-id='bf352dfe' name='holelen' filepath='mm/memory.c' line='3626' column='1'/>
+ <parameter type-id='95e97e5e' name='even_cows' filepath='mm/memory.c' line='3626' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='unpin_user_page' mangled-name='unpin_user_page' filepath='mm/gup.c' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unpin_user_page'>
@@ -158792,8 +159416,8 @@
<parameter type-id='cbd24a98' name='ops' filepath='drivers/base/syscore.c' line='34' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='unregister_sysctl_table' mangled-name='unregister_sysctl_table' filepath='fs/proc/proc_sysctl.c' line='1662' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_sysctl_table'>
- <parameter type-id='11b101bb' name='header' filepath='fs/proc/proc_sysctl.c' line='1662' column='1'/>
+ <function-decl name='unregister_sysctl_table' mangled-name='unregister_sysctl_table' filepath='fs/proc/proc_sysctl.c' line='1695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_sysctl_table'>
+ <parameter type-id='11b101bb' name='header' filepath='fs/proc/proc_sysctl.c' line='1695' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='unregister_tcf_proto_ops' mangled-name='unregister_tcf_proto_ops' filepath='net/sched/cls_api.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='unregister_tcf_proto_ops'>
@@ -158820,20 +159444,20 @@
<parameter type-id='a965a5b5' name='sem' filepath='kernel/locking/semaphore.c' line='182' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='up_read' mangled-name='up_read' filepath='kernel/locking/rwsem.c' line='1625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='up_read'>
- <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1625' column='1'/>
+ <function-decl name='up_read' mangled-name='up_read' filepath='kernel/locking/rwsem.c' line='1637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='up_read'>
+ <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1637' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='up_write' mangled-name='up_write' filepath='kernel/locking/rwsem.c' line='1635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='up_write'>
- <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1635' column='1'/>
+ <function-decl name='up_write' mangled-name='up_write' filepath='kernel/locking/rwsem.c' line='1647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='up_write'>
+ <parameter type-id='9b58df93' name='sem' filepath='kernel/locking/rwsem.c' line='1647' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='update_devfreq' mangled-name='update_devfreq' filepath='drivers/devfreq/devfreq.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='update_devfreq'>
<parameter type-id='f66fa7f4' name='devfreq' filepath='drivers/devfreq/devfreq.c' line='445' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='update_rq_clock' mangled-name='update_rq_clock' filepath='kernel/sched/core.c' line='687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='update_rq_clock'>
- <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='687' column='1'/>
+ <function-decl name='update_rq_clock' mangled-name='update_rq_clock' filepath='kernel/sched/core.c' line='684' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='update_rq_clock'>
+ <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/core.c' line='684' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='usb_add_config' mangled-name='usb_add_config' filepath='drivers/usb/gadget/composite.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_add_config'>
@@ -158967,16 +159591,16 @@
<parameter type-id='95e97e5e' name='pipe' filepath='drivers/usb/core/message.c' line='1208' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='usb_composite_probe' mangled-name='usb_composite_probe' filepath='drivers/usb/gadget/composite.c' line='2489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_probe'>
- <parameter type-id='c64e62ba' name='driver' filepath='drivers/usb/gadget/composite.c' line='2489' column='1'/>
+ <function-decl name='usb_composite_probe' mangled-name='usb_composite_probe' filepath='drivers/usb/gadget/composite.c' line='2493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_probe'>
+ <parameter type-id='c64e62ba' name='driver' filepath='drivers/usb/gadget/composite.c' line='2493' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='usb_composite_setup_continue' mangled-name='usb_composite_setup_continue' filepath='drivers/usb/gadget/composite.c' line='2533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_setup_continue'>
- <parameter type-id='2a895c01' name='cdev' filepath='drivers/usb/gadget/composite.c' line='2533' column='1'/>
+ <function-decl name='usb_composite_setup_continue' mangled-name='usb_composite_setup_continue' filepath='drivers/usb/gadget/composite.c' line='2537' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_setup_continue'>
+ <parameter type-id='2a895c01' name='cdev' filepath='drivers/usb/gadget/composite.c' line='2537' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='usb_composite_unregister' mangled-name='usb_composite_unregister' filepath='drivers/usb/gadget/composite.c' line='2517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_unregister'>
- <parameter type-id='c64e62ba' name='driver' filepath='drivers/usb/gadget/composite.c' line='2517' column='1'/>
+ <function-decl name='usb_composite_unregister' mangled-name='usb_composite_unregister' filepath='drivers/usb/gadget/composite.c' line='2521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_composite_unregister'>
+ <parameter type-id='c64e62ba' name='driver' filepath='drivers/usb/gadget/composite.c' line='2521' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='usb_control_msg' mangled-name='usb_control_msg' filepath='drivers/usb/core/message.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_control_msg'>
@@ -159386,13 +160010,13 @@
</function-decl>
<var-decl name='usb_hcds_loaded' type-id='7359adad' mangled-name='usb_hcds_loaded' visibility='default' filepath='drivers/usb/core/hcd.c' line='81' column='1' elf-symbol-id='usb_hcds_loaded'/>
<var-decl name='usb_hid_driver' type-id='0e5e2ca6' mangled-name='usb_hid_driver' visibility='default' filepath='drivers/hid/usbhid/hid-core.c' line='1321' column='1' elf-symbol-id='usb_hid_driver'/>
- <function-decl name='usb_hub_clear_tt_buffer' mangled-name='usb_hub_clear_tt_buffer' filepath='drivers/usb/core/hub.c' line='866' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hub_clear_tt_buffer'>
- <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/hub.c' line='866' column='1'/>
+ <function-decl name='usb_hub_clear_tt_buffer' mangled-name='usb_hub_clear_tt_buffer' filepath='drivers/usb/core/hub.c' line='869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hub_clear_tt_buffer'>
+ <parameter type-id='ab85b8f2' name='urb' filepath='drivers/usb/core/hub.c' line='869' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='usb_hub_find_child' mangled-name='usb_hub_find_child' filepath='drivers/usb/core/hub.c' line='6262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hub_find_child'>
- <parameter type-id='25e60cb2' name='hdev' filepath='drivers/usb/core/hub.c' line='6262' column='1'/>
- <parameter type-id='95e97e5e' name='port1' filepath='drivers/usb/core/hub.c' line='6263' column='1'/>
+ <function-decl name='usb_hub_find_child' mangled-name='usb_hub_find_child' filepath='drivers/usb/core/hub.c' line='6275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_hub_find_child'>
+ <parameter type-id='25e60cb2' name='hdev' filepath='drivers/usb/core/hub.c' line='6275' column='1'/>
+ <parameter type-id='95e97e5e' name='port1' filepath='drivers/usb/core/hub.c' line='6276' column='1'/>
<return type-id='25e60cb2'/>
</function-decl>
<function-decl name='usb_ifnum_to_if' mangled-name='usb_ifnum_to_if' filepath='drivers/usb/core/usb.c' line='271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_ifnum_to_if'>
@@ -159454,12 +160078,12 @@
<parameter type-id='77292cc0' name='ops' filepath='drivers/usb/core/hcd.c' line='3154' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='usb_os_desc_prepare_interf_dir' mangled-name='usb_os_desc_prepare_interf_dir' filepath='drivers/usb/gadget/configfs.c' line='1228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_os_desc_prepare_interf_dir'>
- <parameter type-id='97aff453' name='parent' filepath='drivers/usb/gadget/configfs.c' line='1229' column='1'/>
- <parameter type-id='95e97e5e' name='n_interf' filepath='drivers/usb/gadget/configfs.c' line='1230' column='1'/>
- <parameter type-id='b6338998' name='desc' filepath='drivers/usb/gadget/configfs.c' line='1231' column='1'/>
- <parameter type-id='9b23c9ad' name='names' filepath='drivers/usb/gadget/configfs.c' line='1232' column='1'/>
- <parameter type-id='2730d015' name='owner' filepath='drivers/usb/gadget/configfs.c' line='1233' column='1'/>
+ <function-decl name='usb_os_desc_prepare_interf_dir' mangled-name='usb_os_desc_prepare_interf_dir' filepath='drivers/usb/gadget/configfs.c' line='1234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_os_desc_prepare_interf_dir'>
+ <parameter type-id='97aff453' name='parent' filepath='drivers/usb/gadget/configfs.c' line='1235' column='1'/>
+ <parameter type-id='95e97e5e' name='n_interf' filepath='drivers/usb/gadget/configfs.c' line='1236' column='1'/>
+ <parameter type-id='b6338998' name='desc' filepath='drivers/usb/gadget/configfs.c' line='1237' column='1'/>
+ <parameter type-id='9b23c9ad' name='names' filepath='drivers/usb/gadget/configfs.c' line='1238' column='1'/>
+ <parameter type-id='2730d015' name='owner' filepath='drivers/usb/gadget/configfs.c' line='1239' column='1'/>
<return type-id='97aff453'/>
</function-decl>
<function-decl name='usb_otg_state_string' mangled-name='usb_otg_state_string' filepath='drivers/usb/common/common.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_otg_state_string'>
@@ -159520,8 +160144,8 @@
<parameter type-id='8bf48c31' name='intf' filepath='drivers/usb/core/usb.c' line='790' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='usb_queue_reset_device' mangled-name='usb_queue_reset_device' filepath='drivers/usb/core/hub.c' line='6242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_queue_reset_device'>
- <parameter type-id='8bf48c31' name='iface' filepath='drivers/usb/core/hub.c' line='6242' column='1'/>
+ <function-decl name='usb_queue_reset_device' mangled-name='usb_queue_reset_device' filepath='drivers/usb/core/hub.c' line='6255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_queue_reset_device'>
+ <parameter type-id='8bf48c31' name='iface' filepath='drivers/usb/core/hub.c' line='6255' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='usb_register_dev' mangled-name='usb_register_dev' filepath='drivers/usb/core/file.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_register_dev'>
@@ -159552,8 +160176,8 @@
<parameter type-id='ca9354d1' name='x' filepath='drivers/usb/phy/phy.c' line='748' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='usb_reset_device' mangled-name='usb_reset_device' filepath='drivers/usb/core/hub.c' line='6124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_reset_device'>
- <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/hub.c' line='6124' column='1'/>
+ <function-decl name='usb_reset_device' mangled-name='usb_reset_device' filepath='drivers/usb/core/hub.c' line='6137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_reset_device'>
+ <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/hub.c' line='6137' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='usb_reset_endpoint' mangled-name='usb_reset_endpoint' filepath='drivers/usb/core/message.c' line='1318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_reset_endpoint'>
@@ -159595,17 +160219,17 @@
<parameter type-id='3e3cd44f' name='sw' filepath='drivers/usb/roles/class.c' line='366' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='usb_root_hub_lost_power' mangled-name='usb_root_hub_lost_power' filepath='drivers/usb/core/hub.c' line='3968' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_root_hub_lost_power'>
- <parameter type-id='25e60cb2' name='rhdev' filepath='drivers/usb/core/hub.c' line='3968' column='1'/>
+ <function-decl name='usb_root_hub_lost_power' mangled-name='usb_root_hub_lost_power' filepath='drivers/usb/core/hub.c' line='3971' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_root_hub_lost_power'>
+ <parameter type-id='25e60cb2' name='rhdev' filepath='drivers/usb/core/hub.c' line='3971' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='usb_scuttle_anchored_urbs' mangled-name='usb_scuttle_anchored_urbs' filepath='drivers/usb/core/urb.c' line='1018' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_scuttle_anchored_urbs'>
<parameter type-id='bd300bf3' name='anchor' filepath='drivers/usb/core/urb.c' line='1018' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='usb_set_device_state' mangled-name='usb_set_device_state' filepath='drivers/usb/core/hub.c' line='2047' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_set_device_state'>
- <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/hub.c' line='2047' column='1'/>
- <parameter type-id='901a91cb' name='new_state' filepath='drivers/usb/core/hub.c' line='2048' column='1'/>
+ <function-decl name='usb_set_device_state' mangled-name='usb_set_device_state' filepath='drivers/usb/core/hub.c' line='2050' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_set_device_state'>
+ <parameter type-id='25e60cb2' name='udev' filepath='drivers/usb/core/hub.c' line='2050' column='1'/>
+ <parameter type-id='901a91cb' name='new_state' filepath='drivers/usb/core/hub.c' line='2051' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='usb_set_interface' mangled-name='usb_set_interface' filepath='drivers/usb/core/message.c' line='1527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_set_interface'>
@@ -159691,9 +160315,9 @@
<parameter type-id='d504f73d' name='nb' filepath='drivers/usb/core/notify.c' line='42' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='usb_wakeup_notification' mangled-name='usb_wakeup_notification' filepath='drivers/usb/core/hub.c' line='697' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_wakeup_notification'>
- <parameter type-id='25e60cb2' name='hdev' filepath='drivers/usb/core/hub.c' line='697' column='1'/>
- <parameter type-id='f0981eeb' name='portnum' filepath='drivers/usb/core/hub.c' line='698' column='1'/>
+ <function-decl name='usb_wakeup_notification' mangled-name='usb_wakeup_notification' filepath='drivers/usb/core/hub.c' line='700' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usb_wakeup_notification'>
+ <parameter type-id='25e60cb2' name='hdev' filepath='drivers/usb/core/hub.c' line='700' column='1'/>
+ <parameter type-id='f0981eeb' name='portnum' filepath='drivers/usb/core/hub.c' line='701' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='usbnet_cdc_unbind' mangled-name='usbnet_cdc_unbind' filepath='drivers/net/usb/cdc_ether.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_cdc_unbind'>
@@ -159730,6 +160354,11 @@
<parameter type-id='8bf48c31' name='intf' filepath='drivers/net/usb/usbnet.c' line='95' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
+ <function-decl name='usbnet_get_ethernet_addr' mangled-name='usbnet_get_ethernet_addr' filepath='drivers/net/usb/usbnet.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_get_ethernet_addr'>
+ <parameter type-id='12884b9a' name='dev' filepath='drivers/net/usb/usbnet.c' line='166' column='1'/>
+ <parameter type-id='95e97e5e' name='iMACAddress' filepath='drivers/net/usb/usbnet.c' line='166' column='1'/>
+ <return type-id='95e97e5e'/>
+ </function-decl>
<function-decl name='usbnet_get_link' mangled-name='usbnet_get_link' filepath='drivers/net/usb/usbnet.c' line='1022' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='usbnet_get_link'>
<parameter type-id='68a2d05b' name='net' filepath='drivers/net/usb/usbnet.c' line='1022' column='1'/>
<return type-id='19c2251e'/>
@@ -160769,19 +161398,19 @@
<parameter type-id='69bf7bee' name='maxsize' filepath='fs/read_write.c' line='54' column='1'/>
<return type-id='69bf7bee'/>
</function-decl>
- <function-decl name='vhost_add_used_and_signal' mangled-name='vhost_add_used_and_signal' filepath='drivers/vhost/vhost.c' line='2483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_add_used_and_signal'>
- <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2483' column='1'/>
- <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2484' column='1'/>
- <parameter type-id='f0981eeb' name='head' filepath='drivers/vhost/vhost.c' line='2485' column='1'/>
- <parameter type-id='95e97e5e' name='len' filepath='drivers/vhost/vhost.c' line='2485' column='1'/>
+ <function-decl name='vhost_add_used_and_signal' mangled-name='vhost_add_used_and_signal' filepath='drivers/vhost/vhost.c' line='2484' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_add_used_and_signal'>
+ <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2484' column='1'/>
+ <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2485' column='1'/>
+ <parameter type-id='f0981eeb' name='head' filepath='drivers/vhost/vhost.c' line='2486' column='1'/>
+ <parameter type-id='95e97e5e' name='len' filepath='drivers/vhost/vhost.c' line='2486' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='vhost_dev_check_owner' mangled-name='vhost_dev_check_owner' filepath='drivers/vhost/vhost.c' line='513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_check_owner'>
<parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='513' column='1'/>
<return type-id='bd54fe1a'/>
</function-decl>
- <function-decl name='vhost_dev_cleanup' mangled-name='vhost_dev_cleanup' filepath='drivers/vhost/vhost.c' line='691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_cleanup'>
- <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='691' column='1'/>
+ <function-decl name='vhost_dev_cleanup' mangled-name='vhost_dev_cleanup' filepath='drivers/vhost/vhost.c' line='692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_cleanup'>
+ <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='692' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='vhost_dev_init' mangled-name='vhost_dev_init' filepath='drivers/vhost/vhost.c' line='467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_init'>
@@ -160795,56 +161424,56 @@
<parameter type-id='850009e4' name='msg_handler' filepath='drivers/vhost/vhost.c' line='471' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='vhost_dev_ioctl' mangled-name='vhost_dev_ioctl' filepath='drivers/vhost/vhost.c' line='1755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_ioctl'>
- <parameter type-id='db1a91a3' name='d' filepath='drivers/vhost/vhost.c' line='1755' column='1'/>
- <parameter type-id='f0981eeb' name='ioctl' filepath='drivers/vhost/vhost.c' line='1755' column='1'/>
- <parameter type-id='eaa32e2f' name='argp' filepath='drivers/vhost/vhost.c' line='1755' column='1'/>
+ <function-decl name='vhost_dev_ioctl' mangled-name='vhost_dev_ioctl' filepath='drivers/vhost/vhost.c' line='1756' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_ioctl'>
+ <parameter type-id='db1a91a3' name='d' filepath='drivers/vhost/vhost.c' line='1756' column='1'/>
+ <parameter type-id='f0981eeb' name='ioctl' filepath='drivers/vhost/vhost.c' line='1756' column='1'/>
+ <parameter type-id='eaa32e2f' name='argp' filepath='drivers/vhost/vhost.c' line='1756' column='1'/>
<return type-id='bd54fe1a'/>
</function-decl>
<function-decl name='vhost_dev_stop' mangled-name='vhost_dev_stop' filepath='drivers/vhost/vhost.c' line='659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_dev_stop'>
<parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='659' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='vhost_disable_notify' mangled-name='vhost_disable_notify' filepath='drivers/vhost/vhost.c' line='2559' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_disable_notify'>
- <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2559' column='1'/>
- <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2559' column='1'/>
+ <function-decl name='vhost_disable_notify' mangled-name='vhost_disable_notify' filepath='drivers/vhost/vhost.c' line='2560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_disable_notify'>
+ <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2560' column='1'/>
+ <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2560' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='vhost_enable_notify' mangled-name='vhost_enable_notify' filepath='drivers/vhost/vhost.c' line='2521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_enable_notify'>
- <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2521' column='1'/>
- <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2521' column='1'/>
+ <function-decl name='vhost_enable_notify' mangled-name='vhost_enable_notify' filepath='drivers/vhost/vhost.c' line='2522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_enable_notify'>
+ <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='2522' column='1'/>
+ <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2522' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='vhost_get_vq_desc' mangled-name='vhost_get_vq_desc' filepath='drivers/vhost/vhost.c' line='2206' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_get_vq_desc'>
- <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2206' column='1'/>
- <parameter type-id='cc4b1be9' name='iov' filepath='drivers/vhost/vhost.c' line='2207' column='1'/>
- <parameter type-id='f0981eeb' name='iov_size' filepath='drivers/vhost/vhost.c' line='2207' column='1'/>
- <parameter type-id='807869d3' name='out_num' filepath='drivers/vhost/vhost.c' line='2208' column='1'/>
- <parameter type-id='807869d3' name='in_num' filepath='drivers/vhost/vhost.c' line='2208' column='1'/>
- <parameter type-id='caa8cb44' name='log' filepath='drivers/vhost/vhost.c' line='2209' column='1'/>
- <parameter type-id='807869d3' name='log_num' filepath='drivers/vhost/vhost.c' line='2209' column='1'/>
+ <function-decl name='vhost_get_vq_desc' mangled-name='vhost_get_vq_desc' filepath='drivers/vhost/vhost.c' line='2207' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_get_vq_desc'>
+ <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2207' column='1'/>
+ <parameter type-id='cc4b1be9' name='iov' filepath='drivers/vhost/vhost.c' line='2208' column='1'/>
+ <parameter type-id='f0981eeb' name='iov_size' filepath='drivers/vhost/vhost.c' line='2208' column='1'/>
+ <parameter type-id='807869d3' name='out_num' filepath='drivers/vhost/vhost.c' line='2209' column='1'/>
+ <parameter type-id='807869d3' name='in_num' filepath='drivers/vhost/vhost.c' line='2209' column='1'/>
+ <parameter type-id='caa8cb44' name='log' filepath='drivers/vhost/vhost.c' line='2210' column='1'/>
+ <parameter type-id='807869d3' name='log_num' filepath='drivers/vhost/vhost.c' line='2210' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='vhost_log_access_ok' mangled-name='vhost_log_access_ok' filepath='drivers/vhost/vhost.c' line='1385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_log_access_ok'>
- <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='1385' column='1'/>
+ <function-decl name='vhost_log_access_ok' mangled-name='vhost_log_access_ok' filepath='drivers/vhost/vhost.c' line='1386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_log_access_ok'>
+ <parameter type-id='db1a91a3' name='dev' filepath='drivers/vhost/vhost.c' line='1386' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
<function-decl name='vhost_poll_flush' mangled-name='vhost_poll_flush' filepath='drivers/vhost/vhost.c' line='250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_poll_flush'>
<parameter type-id='3b230a09' name='poll' filepath='drivers/vhost/vhost.c' line='250' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='vhost_vq_access_ok' mangled-name='vhost_vq_access_ok' filepath='drivers/vhost/vhost.c' line='1417' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vq_access_ok'>
- <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='1417' column='1'/>
+ <function-decl name='vhost_vq_access_ok' mangled-name='vhost_vq_access_ok' filepath='drivers/vhost/vhost.c' line='1418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vq_access_ok'>
+ <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='1418' column='1'/>
<return type-id='b50a4934'/>
</function-decl>
- <function-decl name='vhost_vq_init_access' mangled-name='vhost_vq_init_access' filepath='drivers/vhost/vhost.c' line='2009' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vq_init_access'>
- <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2009' column='1'/>
+ <function-decl name='vhost_vq_init_access' mangled-name='vhost_vq_init_access' filepath='drivers/vhost/vhost.c' line='2010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vq_init_access'>
+ <parameter type-id='9e440830' name='vq' filepath='drivers/vhost/vhost.c' line='2010' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='vhost_vring_ioctl' mangled-name='vhost_vring_ioctl' filepath='drivers/vhost/vhost.c' line='1590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vring_ioctl'>
- <parameter type-id='db1a91a3' name='d' filepath='drivers/vhost/vhost.c' line='1590' column='1'/>
- <parameter type-id='f0981eeb' name='ioctl' filepath='drivers/vhost/vhost.c' line='1590' column='1'/>
- <parameter type-id='eaa32e2f' name='argp' filepath='drivers/vhost/vhost.c' line='1590' column='1'/>
+ <function-decl name='vhost_vring_ioctl' mangled-name='vhost_vring_ioctl' filepath='drivers/vhost/vhost.c' line='1591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vhost_vring_ioctl'>
+ <parameter type-id='db1a91a3' name='d' filepath='drivers/vhost/vhost.c' line='1591' column='1'/>
+ <parameter type-id='f0981eeb' name='ioctl' filepath='drivers/vhost/vhost.c' line='1591' column='1'/>
+ <parameter type-id='eaa32e2f' name='argp' filepath='drivers/vhost/vhost.c' line='1591' column='1'/>
<return type-id='bd54fe1a'/>
</function-decl>
<function-decl name='video_devdata' mangled-name='video_devdata' filepath='drivers/media/v4l2-core/v4l2-dev.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='video_devdata'>
@@ -161214,22 +161843,22 @@
<parameter type-id='7359adad' name='vm_flags' filepath='mm/mmap.c' line='118' column='1'/>
<return type-id='2e2dcbd3'/>
</function-decl>
- <function-decl name='vm_insert_page' mangled-name='vm_insert_page' filepath='mm/memory.c' line='1993' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_insert_page'>
- <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='1993' column='1'/>
- <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='1993' column='1'/>
- <parameter type-id='02f11ed4' name='page' filepath='mm/memory.c' line='1994' column='1'/>
+ <function-decl name='vm_insert_page' mangled-name='vm_insert_page' filepath='mm/memory.c' line='2006' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_insert_page'>
+ <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2006' column='1'/>
+ <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2006' column='1'/>
+ <parameter type-id='02f11ed4' name='page' filepath='mm/memory.c' line='2007' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='vm_iomap_memory' mangled-name='vm_iomap_memory' filepath='mm/memory.c' line='2529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_iomap_memory'>
- <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2529' column='1'/>
- <parameter type-id='2522883d' name='start' filepath='mm/memory.c' line='2529' column='1'/>
- <parameter type-id='7359adad' name='len' filepath='mm/memory.c' line='2529' column='1'/>
+ <function-decl name='vm_iomap_memory' mangled-name='vm_iomap_memory' filepath='mm/memory.c' line='2542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_iomap_memory'>
+ <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2542' column='1'/>
+ <parameter type-id='2522883d' name='start' filepath='mm/memory.c' line='2542' column='1'/>
+ <parameter type-id='7359adad' name='len' filepath='mm/memory.c' line='2542' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='vm_map_pages' mangled-name='vm_map_pages' filepath='mm/memory.c' line='2063' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_map_pages'>
- <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2063' column='1'/>
- <parameter type-id='9f93c9da' name='pages' filepath='mm/memory.c' line='2063' column='1'/>
- <parameter type-id='7359adad' name='num' filepath='mm/memory.c' line='2064' column='1'/>
+ <function-decl name='vm_map_pages' mangled-name='vm_map_pages' filepath='mm/memory.c' line='2076' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_map_pages'>
+ <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2076' column='1'/>
+ <parameter type-id='9f93c9da' name='pages' filepath='mm/memory.c' line='2076' column='1'/>
+ <parameter type-id='7359adad' name='num' filepath='mm/memory.c' line='2077' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='vm_map_ram' mangled-name='vm_map_ram' filepath='mm/vmalloc.c' line='2192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vm_map_ram'>
@@ -161296,23 +161925,23 @@
<parameter type-id='b59d7dce' name='len' filepath='mm/util.c' line='198' column='1'/>
<return type-id='eaa32e2f'/>
</function-decl>
- <function-decl name='vmf_insert_mixed' mangled-name='vmf_insert_mixed' filepath='mm/memory.c' line='2312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_mixed'>
- <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2312' column='1'/>
- <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2312' column='1'/>
- <parameter type-id='abe59ef3' name='pfn' filepath='mm/memory.c' line='2313' column='1'/>
+ <function-decl name='vmf_insert_mixed' mangled-name='vmf_insert_mixed' filepath='mm/memory.c' line='2325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_mixed'>
+ <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2325' column='1'/>
+ <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2325' column='1'/>
+ <parameter type-id='abe59ef3' name='pfn' filepath='mm/memory.c' line='2326' column='1'/>
<return type-id='e9265215'/>
</function-decl>
- <function-decl name='vmf_insert_pfn' mangled-name='vmf_insert_pfn' filepath='mm/memory.c' line='2212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_pfn'>
- <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2212' column='1'/>
- <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2212' column='1'/>
- <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2213' column='1'/>
+ <function-decl name='vmf_insert_pfn' mangled-name='vmf_insert_pfn' filepath='mm/memory.c' line='2225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_pfn'>
+ <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2225' column='1'/>
+ <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2225' column='1'/>
+ <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2226' column='1'/>
<return type-id='e9265215'/>
</function-decl>
- <function-decl name='vmf_insert_pfn_prot' mangled-name='vmf_insert_pfn_prot' filepath='mm/memory.c' line='2164' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_pfn_prot'>
- <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2164' column='1'/>
- <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2164' column='1'/>
- <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2165' column='1'/>
- <parameter type-id='2e2dcbd3' name='pgprot' filepath='mm/memory.c' line='2165' column='1'/>
+ <function-decl name='vmf_insert_pfn_prot' mangled-name='vmf_insert_pfn_prot' filepath='mm/memory.c' line='2177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vmf_insert_pfn_prot'>
+ <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='2177' column='1'/>
+ <parameter type-id='7359adad' name='addr' filepath='mm/memory.c' line='2177' column='1'/>
+ <parameter type-id='7359adad' name='pfn' filepath='mm/memory.c' line='2178' column='1'/>
+ <parameter type-id='2e2dcbd3' name='pgprot' filepath='mm/memory.c' line='2178' column='1'/>
<return type-id='e9265215'/>
</function-decl>
<function-decl name='vprintk' mangled-name='vprintk' filepath='kernel/printk/printk_safe.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='vprintk'>
@@ -161489,12 +162118,12 @@
<parameter type-id='95e97e5e' name='bit' filepath='kernel/sched/wait_bit.c' line='147' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='wake_up_if_idle' mangled-name='wake_up_if_idle' filepath='kernel/sched/core.c' line='3828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_up_if_idle'>
- <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='3828' column='1'/>
+ <function-decl name='wake_up_if_idle' mangled-name='wake_up_if_idle' filepath='kernel/sched/core.c' line='3796' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_up_if_idle'>
+ <parameter type-id='95e97e5e' name='cpu' filepath='kernel/sched/core.c' line='3796' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='wake_up_process' mangled-name='wake_up_process' filepath='kernel/sched/core.c' line='4345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_up_process'>
- <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='4345' column='1'/>
+ <function-decl name='wake_up_process' mangled-name='wake_up_process' filepath='kernel/sched/core.c' line='4313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wake_up_process'>
+ <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='4313' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='wakeup_source_add' mangled-name='wakeup_source_add' filepath='drivers/base/power/wakeup.c' line='175' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='wakeup_source_add'>
@@ -161608,18 +162237,18 @@
<parameter type-id='02f11ed4' name='page' filepath='mm/page-writeback.c' line='2396' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ww_mutex_lock' mangled-name='ww_mutex_lock' filepath='kernel/locking/mutex.c' line='1058' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_lock'>
- <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='1058' column='1'/>
- <parameter type-id='c1d02a64' name='ctx' filepath='kernel/locking/mutex.c' line='1058' column='1'/>
+ <function-decl name='ww_mutex_lock' mangled-name='ww_mutex_lock' filepath='kernel/locking/mutex.c' line='1068' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_lock'>
+ <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='1068' column='1'/>
+ <parameter type-id='c1d02a64' name='ctx' filepath='kernel/locking/mutex.c' line='1068' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ww_mutex_lock_interruptible' mangled-name='ww_mutex_lock_interruptible' filepath='kernel/locking/mutex.c' line='1073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_lock_interruptible'>
- <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='1073' column='1'/>
- <parameter type-id='c1d02a64' name='ctx' filepath='kernel/locking/mutex.c' line='1073' column='1'/>
+ <function-decl name='ww_mutex_lock_interruptible' mangled-name='ww_mutex_lock_interruptible' filepath='kernel/locking/mutex.c' line='1083' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_lock_interruptible'>
+ <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='1083' column='1'/>
+ <parameter type-id='c1d02a64' name='ctx' filepath='kernel/locking/mutex.c' line='1083' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='ww_mutex_unlock' mangled-name='ww_mutex_unlock' filepath='kernel/locking/mutex.c' line='560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_unlock'>
- <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='560' column='1'/>
+ <function-decl name='ww_mutex_unlock' mangled-name='ww_mutex_unlock' filepath='kernel/locking/mutex.c' line='570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='ww_mutex_unlock'>
+ <parameter type-id='7533ba6f' name='lock' filepath='kernel/locking/mutex.c' line='570' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='xa_destroy' mangled-name='xa_destroy' filepath='lib/xarray.c' line='2204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xa_destroy'>
@@ -161681,17 +162310,17 @@
<parameter type-id='38ed603d' name='xdp' filepath='net/core/xdp.c' line='473' column='1'/>
<return type-id='cb1c5129'/>
</function-decl>
- <function-decl name='xdp_do_flush' mangled-name='xdp_do_flush' filepath='net/core/filter.c' line='3924' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_do_flush'>
+ <function-decl name='xdp_do_flush' mangled-name='xdp_do_flush' filepath='net/core/filter.c' line='3927' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_do_flush'>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='xdp_do_redirect' mangled-name='xdp_do_redirect' filepath='net/core/filter.c' line='3974' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_do_redirect'>
- <parameter type-id='68a2d05b' name='dev' filepath='net/core/filter.c' line='3974' column='1'/>
- <parameter type-id='38ed603d' name='xdp' filepath='net/core/filter.c' line='3974' column='1'/>
- <parameter type-id='bdcee7ae' name='xdp_prog' filepath='net/core/filter.c' line='3975' column='1'/>
+ <function-decl name='xdp_do_redirect' mangled-name='xdp_do_redirect' filepath='net/core/filter.c' line='3977' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_do_redirect'>
+ <parameter type-id='68a2d05b' name='dev' filepath='net/core/filter.c' line='3977' column='1'/>
+ <parameter type-id='38ed603d' name='xdp' filepath='net/core/filter.c' line='3977' column='1'/>
+ <parameter type-id='bdcee7ae' name='xdp_prog' filepath='net/core/filter.c' line='3978' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='xdp_master_redirect' mangled-name='xdp_master_redirect' filepath='net/core/filter.c' line='3952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_master_redirect'>
- <parameter type-id='38ed603d' name='xdp' filepath='net/core/filter.c' line='3952' column='1'/>
+ <function-decl name='xdp_master_redirect' mangled-name='xdp_master_redirect' filepath='net/core/filter.c' line='3955' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_master_redirect'>
+ <parameter type-id='38ed603d' name='xdp' filepath='net/core/filter.c' line='3955' column='1'/>
<return type-id='19c2251e'/>
</function-decl>
<function-decl name='xdp_return_frame' mangled-name='xdp_return_frame' filepath='net/core/xdp.c' line='377' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xdp_return_frame'>
@@ -161780,16 +162409,16 @@
<parameter type-id='328dda6e' name='x' filepath='net/xfrm/xfrm_state.c' line='2693' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='xfrm_input' mangled-name='xfrm_input' filepath='net/xfrm/xfrm_input.c' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_input'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
- <parameter type-id='95e97e5e' name='nexthdr' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
- <parameter type-id='78a133c2' name='spi' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
- <parameter type-id='95e97e5e' name='encap_type' filepath='net/xfrm/xfrm_input.c' line='460' column='1'/>
+ <function-decl name='xfrm_input' mangled-name='xfrm_input' filepath='net/xfrm/xfrm_input.c' line='459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_input'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_input.c' line='459' column='1'/>
+ <parameter type-id='95e97e5e' name='nexthdr' filepath='net/xfrm/xfrm_input.c' line='459' column='1'/>
+ <parameter type-id='78a133c2' name='spi' filepath='net/xfrm/xfrm_input.c' line='459' column='1'/>
+ <parameter type-id='95e97e5e' name='encap_type' filepath='net/xfrm/xfrm_input.c' line='459' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
- <function-decl name='xfrm_input_resume' mangled-name='xfrm_input_resume' filepath='net/xfrm/xfrm_input.c' line='758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_input_resume'>
- <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_input.c' line='758' column='1'/>
- <parameter type-id='95e97e5e' name='nexthdr' filepath='net/xfrm/xfrm_input.c' line='758' column='1'/>
+ <function-decl name='xfrm_input_resume' mangled-name='xfrm_input_resume' filepath='net/xfrm/xfrm_input.c' line='757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_input_resume'>
+ <parameter type-id='0fbf3cfd' name='skb' filepath='net/xfrm/xfrm_input.c' line='757' column='1'/>
+ <parameter type-id='95e97e5e' name='nexthdr' filepath='net/xfrm/xfrm_input.c' line='757' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='xfrm_lookup' mangled-name='xfrm_lookup' filepath='net/xfrm/xfrm_policy.c' line='3190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xfrm_lookup'>
@@ -161894,9 +162523,9 @@
<parameter type-id='d7409d08' name='erst' filepath='drivers/usb/host/xhci-mem.c' line='1836' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='xhci_gen_setup' mangled-name='xhci_gen_setup' filepath='drivers/usb/host/xhci.c' line='5227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_gen_setup'>
- <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/xhci.c' line='5227' column='1'/>
- <parameter type-id='67f831c0' name='get_quirks' filepath='drivers/usb/host/xhci.c' line='5227' column='1'/>
+ <function-decl name='xhci_gen_setup' mangled-name='xhci_gen_setup' filepath='drivers/usb/host/xhci.c' line='5232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_gen_setup'>
+ <parameter type-id='fc4f83c1' name='hcd' filepath='drivers/usb/host/xhci.c' line='5232' column='1'/>
+ <parameter type-id='67f831c0' name='get_quirks' filepath='drivers/usb/host/xhci.c' line='5232' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='xhci_get_endpoint_index' mangled-name='xhci_get_endpoint_index' filepath='drivers/usb/host/xhci.c' line='1456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_get_endpoint_index'>
@@ -161909,17 +162538,17 @@
<parameter type-id='f0981eeb' name='ep_index' filepath='drivers/usb/host/xhci-mem.c' line='527' column='1'/>
<return type-id='216753a5'/>
</function-decl>
- <function-decl name='xhci_init_driver' mangled-name='xhci_init_driver' filepath='drivers/usb/host/xhci.c' line='5474' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_init_driver'>
- <parameter type-id='c07d5ba3' name='drv' filepath='drivers/usb/host/xhci.c' line='5474' column='1'/>
- <parameter type-id='9a55ba3d' name='over' filepath='drivers/usb/host/xhci.c' line='5475' column='1'/>
+ <function-decl name='xhci_init_driver' mangled-name='xhci_init_driver' filepath='drivers/usb/host/xhci.c' line='5479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_init_driver'>
+ <parameter type-id='c07d5ba3' name='drv' filepath='drivers/usb/host/xhci.c' line='5479' column='1'/>
+ <parameter type-id='9a55ba3d' name='over' filepath='drivers/usb/host/xhci.c' line='5480' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='xhci_queue_stop_endpoint' mangled-name='xhci_queue_stop_endpoint' filepath='drivers/usb/host/xhci-ring.c' line='4415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_queue_stop_endpoint'>
- <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-ring.c' line='4415' column='1'/>
- <parameter type-id='5a32bd4b' name='cmd' filepath='drivers/usb/host/xhci-ring.c' line='4415' column='1'/>
- <parameter type-id='95e97e5e' name='slot_id' filepath='drivers/usb/host/xhci-ring.c' line='4416' column='1'/>
- <parameter type-id='f0981eeb' name='ep_index' filepath='drivers/usb/host/xhci-ring.c' line='4416' column='1'/>
- <parameter type-id='95e97e5e' name='suspend' filepath='drivers/usb/host/xhci-ring.c' line='4416' column='1'/>
+ <function-decl name='xhci_queue_stop_endpoint' mangled-name='xhci_queue_stop_endpoint' filepath='drivers/usb/host/xhci-ring.c' line='4418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_queue_stop_endpoint'>
+ <parameter type-id='0c65b409' name='xhci' filepath='drivers/usb/host/xhci-ring.c' line='4418' column='1'/>
+ <parameter type-id='5a32bd4b' name='cmd' filepath='drivers/usb/host/xhci-ring.c' line='4418' column='1'/>
+ <parameter type-id='95e97e5e' name='slot_id' filepath='drivers/usb/host/xhci-ring.c' line='4419' column='1'/>
+ <parameter type-id='f0981eeb' name='ep_index' filepath='drivers/usb/host/xhci-ring.c' line='4419' column='1'/>
+ <parameter type-id='95e97e5e' name='suspend' filepath='drivers/usb/host/xhci-ring.c' line='4419' column='1'/>
<return type-id='95e97e5e'/>
</function-decl>
<function-decl name='xhci_reset_bandwidth' mangled-name='xhci_reset_bandwidth' filepath='drivers/usb/host/xhci.c' line='3120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xhci_reset_bandwidth'>
@@ -162082,7 +162711,13 @@
<parameter type-id='f0981eeb' name='n' filepath='net/netfilter/x_tables.c' line='132' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
- <function-decl name='yield' mangled-name='yield' filepath='kernel/sched/core.c' line='8563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='yield'>
+ <function-decl name='yield' mangled-name='yield' filepath='kernel/sched/core.c' line='8495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='yield'>
+ <return type-id='48b5725f'/>
+ </function-decl>
+ <function-decl name='zap_vma_ptes' mangled-name='zap_vma_ptes' filepath='mm/memory.c' line='1768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zap_vma_ptes'>
+ <parameter type-id='2ae08426' name='vma' filepath='mm/memory.c' line='1768' column='1'/>
+ <parameter type-id='7359adad' name='address' filepath='mm/memory.c' line='1768' column='1'/>
+ <parameter type-id='7359adad' name='size' filepath='mm/memory.c' line='1769' column='1'/>
<return type-id='48b5725f'/>
</function-decl>
<function-decl name='zlib_deflate' mangled-name='zlib_deflate' filepath='lib/zlib_deflate/deflate.c' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='zlib_deflate'>
diff --git a/android/abi_gki_aarch64_amlogic b/android/abi_gki_aarch64_amlogic
index a95fbda7..2eebd0a 100644
--- a/android/abi_gki_aarch64_amlogic
+++ b/android/abi_gki_aarch64_amlogic
@@ -334,6 +334,7 @@
devm_nvmem_cell_get
devm_of_clk_add_hw_provider
devm_of_pwm_get
+ devm_pci_remap_cfg_resource
devm_phy_get
devm_pinctrl_get
devm_pinctrl_put
diff --git a/android/abi_gki_aarch64_db845c b/android/abi_gki_aarch64_db845c
index 731d6ae..f7b65dc 100644
--- a/android/abi_gki_aarch64_db845c
+++ b/android/abi_gki_aarch64_db845c
@@ -168,10 +168,6 @@
dev_pm_opp_put
dev_pm_opp_set_opp
dev_pm_opp_set_rate
- devres_add
- __devres_alloc_node
- devres_free
- devres_release
dev_set_name
_dev_warn
disable_irq
@@ -1025,13 +1021,6 @@
# required by icc-osm-l3.ko
icc_std_aggregate
-# required by led-class-multicolor.ko
- led_classdev_register_ext
- led_classdev_unregister
- led_colors
- led_set_brightness
- stpcpy
-
# required by llcc-qcom.ko
devm_platform_ioremap_resource_byname
@@ -1755,6 +1744,12 @@
__xa_insert
xa_load
+# required by reboot-mode.ko
+ devres_add
+ __devres_alloc_node
+ devres_free
+ devres_release
+
# required by regmap-spmi.ko
spmi_ext_register_read
spmi_ext_register_readl
@@ -1927,8 +1922,11 @@
ufshcd_runtime_resume
ufshcd_runtime_suspend
ufshcd_suspend_prepare
+ ufshcd_system_freeze
+ ufshcd_system_restore
ufshcd_system_resume
ufshcd_system_suspend
+ ufshcd_system_thaw
# required by ulpi.ko
of_device_modalias
@@ -2010,7 +2008,12 @@
# preserved by --additions-only
drm_connector_init_with_ddc
+ led_classdev_register_ext
+ led_classdev_unregister
+ led_colors
+ led_set_brightness
of_clk_get_by_name
snd_soc_get_volsw_sx
snd_soc_info_volsw_sx
snd_soc_put_volsw_sx
+ stpcpy
diff --git a/android/abi_gki_aarch64_lenovo b/android/abi_gki_aarch64_lenovo
new file mode 100644
index 0000000..cdd5b77
--- /dev/null
+++ b/android/abi_gki_aarch64_lenovo
@@ -0,0 +1,956 @@
+[abi_symbol_list]
+# commonly used symbols
+ alloc_chrdev_region
+ __alloc_pages
+ __alloc_skb
+ alloc_workqueue
+ android_kmalloc_64_create
+ __arch_copy_from_user
+ __arch_copy_to_user
+ arm64_const_caps_ready
+ arm64_use_ng_mappings
+ bcmp
+ bitmap_find_free_region
+ bitmap_release_region
+ bitmap_zalloc
+ bpf_trace_run1
+ bpf_trace_run2
+ bpf_trace_run3
+ bpf_trace_run4
+ bpf_trace_run5
+ bus_for_each_dev
+ cancel_delayed_work
+ cancel_delayed_work_sync
+ cancel_work_sync
+ cdev_add
+ cdev_del
+ cdev_init
+ __cfi_slowpath_diag
+ __check_object_size
+ __class_create
+ class_destroy
+ __class_register
+ class_unregister
+ __ClearPageMovable
+ clk_disable
+ clk_enable
+ clk_get_rate
+ clk_prepare
+ clk_put
+ clk_unprepare
+ cma_alloc
+ cma_release
+ complete
+ complete_all
+ __const_udelay
+ consume_skb
+ cpu_bit_bitmap
+ __cpuhp_remove_state
+ __cpuhp_setup_state
+ __cpuhp_state_add_instance
+ __cpuhp_state_remove_instance
+ cpu_hwcap_keys
+ cpu_hwcaps
+ cpumask_next
+ cpu_number
+ __cpu_online_mask
+ __cpu_possible_mask
+ _ctype
+ debugfs_attr_read
+ debugfs_attr_write
+ debugfs_create_dir
+ debugfs_create_file
+ debugfs_remove
+ default_llseek
+ delayed_work_timer_fn
+ del_timer_sync
+ destroy_workqueue
+ dev_close
+ dev_driver_string
+ _dev_err
+ device_create
+ device_destroy
+ device_initialize
+ device_property_present
+ device_property_read_u32_array
+ _dev_info
+ devm_gpiod_get_optional
+ devm_ioremap
+ devm_ioremap_resource
+ devm_kfree
+ devm_kmalloc
+ devm_platform_ioremap_resource
+ __devm_regmap_init
+ __devm_request_region
+ devm_request_threaded_irq
+ _dev_notice
+ dev_set_name
+ _dev_warn
+ disable_irq
+ dma_alloc_attrs
+ dma_buf_attach
+ dma_buf_detach
+ dma_buf_export
+ dma_buf_get
+ dma_buf_map_attachment
+ dma_buf_put
+ dma_buf_unmap_attachment
+ dma_contiguous_default_area
+ dma_free_attrs
+ dma_heap_add
+ dma_heap_get_drvdata
+ dma_heap_get_name
+ dmam_alloc_attrs
+ dma_map_page_attrs
+ dma_map_sgtable
+ dmam_free_coherent
+ dma_set_coherent_mask
+ dma_set_mask
+ dma_sync_sg_for_cpu
+ dma_sync_sg_for_device
+ dma_sync_single_for_device
+ dma_unmap_page_attrs
+ dma_unmap_sg_attrs
+ down_interruptible
+ down_read
+ down_write
+ dump_stack
+ enable_irq
+ eth_type_trans
+ event_triggers_call
+ _find_first_bit
+ _find_first_zero_bit
+ __find_vma
+ finish_wait
+ flush_work
+ free_irq
+ __free_pages
+ free_pages
+ gcd
+ __get_free_pages
+ gic_nonsecure_priorities
+ hrtimer_cancel
+ hrtimer_forward
+ hrtimer_init
+ hrtimer_start_range_ns
+ i2c_get_adapter
+ i2c_put_adapter
+ i2c_transfer
+ init_net
+ __init_rwsem
+ __init_swait_queue_head
+ init_timer_key
+ init_wait_entry
+ __init_waitqueue_head
+ iomem_resource
+ __ioremap
+ iounmap
+ iput
+ irq_get_irq_data
+ irq_of_parse_and_map
+ irq_set_affinity
+ is_vmalloc_addr
+ jiffies
+ jiffies_to_msecs
+ kasan_flag_enabled
+ kfree
+ kfree_skb
+ kimage_voffset
+ __kmalloc
+ kmalloc_caches
+ kmalloc_order_trace
+ kmem_cache_alloc_trace
+ kobject_create_and_add
+ kobject_init_and_add
+ kobject_put
+ kstrdup
+ kstrtoint
+ kstrtoint_from_user
+ kstrtouint
+ kstrtoull
+ kthread_create_on_node
+ kthread_should_stop
+ kthread_stop
+ ktime_get
+ ktime_get_mono_fast_ns
+ ktime_get_real_ts64
+ ktime_get_with_offset
+ kvfree
+ kvmalloc_node
+ __list_add_valid
+ __list_del_entry_valid
+ log_post_read_mmio
+ log_post_write_mmio
+ log_read_mmio
+ log_write_mmio
+ memcmp
+ memcpy
+ memdup_user
+ memmove
+ memset
+ memstart_addr
+ misc_deregister
+ misc_register
+ mod_delayed_work_on
+ mod_timer
+ module_layout
+ __msecs_to_jiffies
+ msleep
+ __mutex_init
+ mutex_is_locked
+ mutex_lock
+ mutex_unlock
+ __netdev_alloc_skb
+ netif_rx_ni
+ netlink_unicast
+ nla_put
+ no_llseek
+ nr_cpu_ids
+ of_address_to_resource
+ of_device_is_compatible
+ of_dma_is_coherent
+ of_find_device_by_node
+ of_find_property
+ of_get_child_by_name
+ of_get_next_available_child
+ of_get_next_child
+ of_iomap
+ of_irq_get
+ of_parse_phandle
+ of_property_read_string
+ of_property_read_variable_u32_array
+ of_reserved_mem_lookup
+ panic
+ param_ops_bool
+ param_ops_charp
+ param_ops_int
+ param_ops_string
+ param_ops_uint
+ param_ops_ulong
+ param_ops_ushort
+ pci_disable_device
+ pci_enable_device
+ pci_find_capability
+ pci_get_device
+ pci_set_power_state
+ __per_cpu_offset
+ perf_trace_buf_alloc
+ perf_trace_run_bpf_submit
+ pfn_is_map_memory
+ platform_device_register
+ platform_device_unregister
+ __platform_driver_register
+ platform_driver_unregister
+ platform_get_irq
+ platform_get_irq_byname
+ platform_get_irq_byname_optional
+ platform_get_resource
+ __pm_runtime_disable
+ pm_runtime_enable
+ __pm_runtime_idle
+ __pm_runtime_resume
+ __pm_runtime_set_status
+ __pm_runtime_suspend
+ preempt_schedule
+ preempt_schedule_notrace
+ prepare_to_wait_event
+ _printk
+ proc_create
+ put_device
+ __put_page
+ __put_task_struct
+ queue_delayed_work_on
+ queue_work_on
+ ___ratelimit
+ _raw_spin_lock
+ _raw_spin_lock_bh
+ _raw_spin_lock_irqsave
+ _raw_spin_unlock
+ _raw_spin_unlock_bh
+ _raw_spin_unlock_irqrestore
+ rb_erase
+ rb_insert_color
+ __rcu_read_lock
+ __rcu_read_unlock
+ refcount_warn_saturate
+ register_chrdev_region
+ register_netdevice
+ register_netdevice_notifier
+ register_shrinker
+ regmap_read
+ regmap_write
+ release_firmware
+ __release_region
+ remap_pfn_range
+ request_firmware
+ __request_region
+ request_threaded_irq
+ reset_control_assert
+ reset_control_deassert
+ rfkill_alloc
+ rfkill_destroy
+ rfkill_register
+ rfkill_unregister
+ rtnl_is_locked
+ rtnl_lock
+ rtnl_unlock
+ sched_clock
+ schedule
+ schedule_timeout
+ scnprintf
+ seq_lseek
+ seq_open
+ seq_printf
+ seq_puts
+ seq_read
+ seq_release
+ __SetPageMovable
+ sg_alloc_table
+ sg_alloc_table_from_pages_segment
+ sg_free_table
+ sg_next
+ simple_attr_open
+ simple_attr_release
+ simple_open
+ simple_read_from_buffer
+ single_open
+ single_release
+ skb_pull
+ skb_push
+ snprintf
+ sprintf
+ sscanf
+ __stack_chk_fail
+ strcmp
+ strcpy
+ strlcpy
+ strlen
+ strncmp
+ strncpy
+ strnlen
+ strstr
+ __sw_hweight32
+ __sw_hweight64
+ synchronize_net
+ synchronize_rcu
+ sysfs_create_file_ns
+ sysfs_create_group
+ sysfs_emit
+ sysfs_remove_group
+ sysfs_streq
+ system_wq
+ trace_event_buffer_commit
+ trace_event_buffer_reserve
+ trace_event_ignore_this_pid
+ trace_event_printf
+ trace_event_raw_init
+ trace_event_reg
+ trace_handle_return
+ trace_print_array_seq
+ trace_raw_output_prep
+ __ubsan_handle_cfi_check_fail_abort
+ __udelay
+ unlock_page
+ __unregister_chrdev
+ unregister_chrdev_region
+ unregister_netdevice_notifier
+ unregister_netdevice_queue
+ unregister_shrinker
+ up
+ up_read
+ up_write
+ usleep_range_state
+ vabits_actual
+ vfree
+ vmalloc
+ vmap
+ vmf_insert_pfn_prot
+ vsnprintf
+ vunmap
+ vzalloc
+ wait_for_completion_timeout
+ __wake_up
+ wake_up_process
+ __warn_printk
+
+# required by access_monitor.ko
+ devm_iounmap
+ devm_of_iomap
+ of_property_read_string_helper
+
+# required by arm_dsu_pmu.ko
+ bitmap_from_arr32
+ bitmap_print_to_pagebuf
+ cpumask_any_but
+ dev_fwnode
+ devm_kasprintf
+ of_count_phandle_with_args
+ of_cpu_node_to_id
+ of_fwnode_ops
+ perf_event_update_userpage
+ perf_pmu_migrate_context
+ perf_pmu_register
+ perf_pmu_unregister
+
+# required by arm_smmu_v3.ko
+ alloc_io_pgtable_ops
+ amba_bustype
+ bitmap_free
+ bus_set_iommu
+ device_match_fwnode
+ devm_add_action
+ driver_find_device
+ free_io_pgtable_ops
+ generic_device_group
+ generic_iommu_put_resv_regions
+ iommu_alloc_resv_region
+ iommu_device_register
+ iommu_device_sysfs_add
+ iommu_device_sysfs_remove
+ iommu_device_unregister
+ iommu_dma_get_resv_regions
+ iommu_fwspec_add_ids
+ iommu_fwspec_free
+ iommu_report_device_fault
+ of_find_node_with_property
+ of_parse_phandle_with_args
+ pci_ats_supported
+ pci_bus_type
+ pci_device_group
+ pci_disable_ats
+ pci_enable_ats
+ platform_bus_type
+ platform_msi_domain_alloc_irqs
+ platform_msi_domain_free_irqs
+ __xa_alloc
+ xa_erase
+
+# required by bcmdhd.ko
+ add_timer
+ alloc_etherdev_mqs
+ bitmap_parse
+ capable
+ complete_and_exit
+ del_timer
+ __dev_kfree_skb_any
+ disable_irq_nosync
+ down
+ free_netdev
+ get_random_bytes
+ get_random_u32
+ gpiod_direction_output_raw
+ gpio_free
+ gpio_to_desc
+ iwe_stream_add_event
+ iwe_stream_add_point
+ iwe_stream_add_value
+ __kfifo_free
+ __kfifo_in
+ __kfifo_init
+ __kfifo_out
+ kobject_uevent
+ __local_bh_enable_ip
+ napi_complete_done
+ napi_disable
+ napi_enable
+ napi_gro_receive
+ __napi_schedule
+ napi_schedule_prep
+ netdev_update_features
+ netif_napi_add
+ __netif_napi_del
+ netif_receive_skb
+ netif_rx
+ netif_tx_wake_queue
+ __netlink_kernel_create
+ netlink_kernel_release
+ nla_put_nohdr
+ __nlmsg_put
+ ns_to_timespec64
+ pci_alloc_irq_vectors_affinity
+ pci_enable_wake
+ pci_find_ext_capability
+ pci_free_irq_vectors
+ pci_load_and_free_saved_state
+ pci_load_saved_state
+ pci_read_config_dword
+ __pci_register_driver
+ pci_restore_state
+ pci_save_state
+ pci_set_master
+ pci_store_saved_state
+ pci_unregister_driver
+ pci_write_config_dword
+ __pm_relax
+ __pm_stay_awake
+ pm_wakeup_ws_event
+ pskb_expand_head
+ register_inetaddr_notifier
+ register_netdev
+ register_pm_notifier
+ register_reboot_notifier
+ rtc_time64_to_tm
+ sched_set_fifo_low
+ set_cpus_allowed_ptr
+ simple_strtol
+ simple_strtoul
+ skb_clone
+ skb_copy
+ skb_dequeue
+ skb_queue_purge
+ skb_queue_tail
+ sock_wfree
+ sprint_symbol
+ strcat
+ strchr
+ strncasecmp
+ strncat
+ strrchr
+ strsep
+ strspn
+ sys_tz
+ tasklet_init
+ tasklet_kill
+ __tasklet_schedule
+ unregister_inetaddr_notifier
+ unregister_netdev
+ unregister_pm_notifier
+ unregister_reboot_notifier
+ vprintk
+ wakeup_source_register
+ wakeup_source_unregister
+ wireless_send_event
+ work_busy
+
+# required by cfg80211.ko
+ bpf_trace_run10
+ bpf_trace_run6
+ bpf_trace_run7
+ bpf_trace_run8
+ crc32_le
+ debugfs_rename
+ __dev_change_net_namespace
+ __dev_get_by_index
+ dev_get_by_index
+ device_add
+ device_del
+ device_rename
+ do_trace_netlink_extack
+ flush_delayed_work
+ genlmsg_multicast_allns
+ genlmsg_put
+ genl_register_family
+ genl_unregister_family
+ get_net_ns_by_fd
+ get_net_ns_by_pid
+ inet_csk_get_port
+ init_uts_ns
+ key_create_or_update
+ key_put
+ keyring_alloc
+ kfree_sensitive
+ kmemdup
+ kobject_uevent_env
+ ktime_get_coarse_with_offset
+ kvfree_call_rcu
+ netdev_err
+ netlink_broadcast
+ netlink_register_notifier
+ netlink_unregister_notifier
+ net_ns_type_operations
+ nla_find
+ nla_memcpy
+ __nla_parse
+ nla_put_64bit
+ nla_reserve
+ __nla_validate
+ of_prop_next_u32
+ platform_device_register_full
+ __pskb_pull_tail
+ __put_net
+ register_pernet_device
+ request_firmware_nowait
+ rfkill_blocked
+ rfkill_resume_polling
+ rfkill_set_hw_state_reason
+ skb_add_rx_frag
+ skb_copy_bits
+ skb_put
+ skb_trim
+ __sock_create
+ sock_release
+ __sw_hweight16
+ __sw_hweight8
+ sysfs_create_link
+ sysfs_remove_link
+ system_power_efficient_wq
+ unregister_pernet_device
+ verify_pkcs7_signature
+ wireless_nlevent_flush
+
+# required by ci700.ko
+ __arm_smccc_smc
+ kernel_kobj
+ of_device_is_available
+ of_find_matching_node_and_match
+ PDE_DATA
+ proc_mkdir
+
+# required by cma_heap.ko
+ cma_get_name
+
+# required by dma-buf-test-exporter.ko
+ dma_buf_begin_cpu_access
+ dma_buf_end_cpu_access
+ dma_buf_fd
+ dma_map_sg_attrs
+
+# required by dwc3-smartsilicon.ko
+ device_set_wakeup_capable
+ irq_set_irq_wake
+ of_get_compatible_child
+ of_platform_depopulate
+ of_platform_populate
+ sysfs_create_groups
+ usb_speed_string
+
+# required by fr.ko
+ find_task_by_vpid
+ iommu_get_domain_for_dev
+ iommu_iova_to_phys
+ remove_proc_entry
+
+# required by hantrodec.ko
+ of_dma_configure_id
+ vmalloc_to_page
+
+# required by hantroenc.ko
+ __register_chrdev
+
+# required by i2c-designware-core.ko
+ i2c_add_numbered_adapter
+ i2c_generic_scl_recovery
+ i2c_recover_bus
+ regmap_update_bits_base
+
+# required by i2c-designware-platform.ko
+ device_get_match_data
+ devm_clk_get_optional
+ __devm_reset_control_get
+ i2c_del_adapter
+ i2c_parse_fw_timings
+ pm_runtime_set_autosuspend_delay
+ __pm_runtime_use_autosuspend
+ pm_suspend_global_flags
+ syscon_node_to_regmap
+
+# required by i2c-dev.ko
+ bus_register_notifier
+ bus_unregister_notifier
+ cdev_device_add
+ cdev_device_del
+ device_for_each_child
+ i2c_adapter_type
+ i2c_bus_type
+ i2c_for_each_dev
+ i2c_smbus_xfer
+ i2c_transfer_buffer_flags
+ i2c_verify_client
+
+# required by kutf.ko
+ debugfs_create_file_unsafe
+ debugfs_create_u32
+ strnchr
+ strpbrk
+
+# required by mali_kbase.ko
+ anon_inode_getfd
+ __arch_clear_user
+ __bitmap_andnot
+ __bitmap_equal
+ __bitmap_or
+ __bitmap_weight
+ __bitmap_xor
+ cache_line_size
+ clear_page
+ __clk_is_enabled
+ clk_notifier_register
+ clk_notifier_unregister
+ clk_set_rate
+ completion_done
+ debugfs_create_bool
+ devfreq_add_device
+ devfreq_cooling_unregister
+ devfreq_recommended_opp
+ devfreq_register_opp_notifier
+ devfreq_remove_device
+ devfreq_resume_device
+ devfreq_suspend_device
+ devfreq_unregister_opp_notifier
+ device_create_file
+ device_remove_file
+ dev_pm_opp_find_freq_ceil
+ dev_pm_opp_find_freq_exact
+ dev_pm_opp_find_freq_floor
+ dev_pm_opp_get_opp_count
+ dev_pm_opp_get_voltage
+ dev_pm_opp_of_add_table
+ dev_pm_opp_of_remove_table
+ dev_pm_opp_put
+ dev_pm_opp_put_regulators
+ dev_pm_opp_set_regulators
+ dma_buf_mmap
+ dma_fence_add_callback
+ dma_fence_context_alloc
+ dma_fence_default_wait
+ dma_fence_get_status
+ dma_fence_init
+ dma_fence_release
+ dma_fence_remove_callback
+ dma_fence_signal
+ dma_sync_single_for_cpu
+ downgrade_write
+ down_read_trylock
+ fd_install
+ find_get_pid
+ _find_next_bit
+ flush_workqueue
+ fput
+ generic_file_llseek
+ get_device
+ get_unused_fd_flags
+ get_user_pages
+ get_user_pages_fast
+ hrtimer_active
+ kobject_del
+ kstrndup
+ kstrtobool_from_user
+ kstrtouint_from_user
+ ktime_get_raw
+ ktime_get_raw_ts64
+ __lock_page
+ memchr
+ __mmdrop
+ module_put
+ msleep_interruptible
+ mutex_trylock
+ nonseekable_open
+ of_clk_get
+ of_devfreq_cooling_register_power
+ of_find_compatible_node
+ of_get_property
+ of_machine_is_compatible
+ of_property_count_elems_of_size
+ of_property_read_u64
+ of_property_read_variable_u64_array
+ of_property_read_variable_u8_array
+ param_array_ops
+ param_ops_byte
+ pid_task
+ pin_user_pages
+ pin_user_pages_remote
+ put_pid
+ _raw_spin_trylock
+ rb_first
+ rb_next
+ rb_prev
+ rb_replace_node
+ register_oom_notifier
+ regulator_disable
+ regulator_enable
+ regulator_get_optional
+ regulator_put
+ regulator_set_voltage
+ remap_vmalloc_range
+ __seq_open_private
+ seq_putc
+ seq_release_private
+ seq_write
+ set_page_dirty_lock
+ shmem_file_setup
+ strcspn
+ strscpy
+ sync_file_create
+ sync_file_get_fence
+ synchronize_irq
+ sysfs_remove_file_ns
+ system_highpri_wq
+ system_long_wq
+ thermal_zone_get_zone_by_name
+ _totalram_pages
+ __traceiter_gpu_mem_total
+ trace_output_call
+ __tracepoint_gpu_mem_total
+ trace_print_flags_seq
+ trace_print_symbols_seq
+ try_module_get
+ unmap_mapping_range
+ unpin_user_page
+ unregister_oom_notifier
+ vmalloc_user
+ wait_for_completion
+
+# required by pcie-smsi.ko
+ cpumask_next_and
+ device_init_wakeup
+ device_release_driver
+ devm_pci_alloc_host_bridge
+ devm_pci_remap_cfg_resource
+ devm_release_resource
+ generic_handle_domain_irq
+ generic_handle_irq
+ gpiod_get_value
+ gpiod_set_value_cansleep
+ handle_edge_irq
+ handle_simple_irq
+ __irq_alloc_descs
+ irq_chip_ack_parent
+ irq_chip_mask_parent
+ irq_chip_unmask_parent
+ irq_dispose_mapping
+ __irq_domain_add
+ irq_domain_associate_many
+ irq_domain_get_irq_data
+ irq_domain_remove
+ irq_domain_set_info
+ irq_domain_update_bus_token
+ __irq_resolve_mapping
+ irq_set_chained_handler_and_data
+ irq_set_chip_and_handler_name
+ irq_set_chip_data
+ irq_to_desc
+ nr_irqs
+ of_match_device
+ of_pci_get_max_link_speed
+ pci_disable_link_state
+ pcie_capability_clear_and_set_word
+ pcie_link_speed
+ pci_generic_config_read
+ pci_generic_config_write
+ pci_host_probe
+ pci_lock_rescan_remove
+ pci_msi_create_irq_domain
+ pci_msi_enabled
+ pci_msi_mask_irq
+ pci_msi_unmask_irq
+ pci_pio_to_address
+ pci_read_config_byte
+ pci_read_config_word
+ pci_remove_root_bus
+ pci_stop_root_bus
+ pci_unlock_rescan_remove
+ platform_get_resource_byname
+ simple_write_to_buffer
+
+# required by smsi-mailbox-ap2rpm.ko
+ mbox_free_channel
+ mbox_request_channel_byname
+
+# required by smsi-mailbox.ko
+ devm_mbox_controller_register
+ mbox_chan_received_data
+ __memcpy_fromio
+ __memcpy_toio
+
+# required by smsi_busmon.ko
+ arch_timer_read_counter
+
+# required by smsi_wdt.ko
+ autoremove_wake_function
+ irq_force_affinity
+ kthread_bind
+ of_irq_parse_one
+ prepare_to_wait
+ sched_set_fifo
+ watchdog_init_timeout
+ watchdog_register_device
+ watchdog_set_restart_priority
+ watchdog_unregister_device
+
+# required by system_heap.ko
+ dmabuf_page_pool_alloc
+ dmabuf_page_pool_create
+ dmabuf_page_pool_destroy
+ dmabuf_page_pool_free
+ dma_heap_get_dev
+ __sg_page_iter_next
+ __sg_page_iter_start
+
+# required by vvcam_dw200.ko
+ devm_free_irq
+
+# required by vvcam_sensor.ko
+ i2c_new_client_device
+ i2c_unregister_device
+
+# required by zram.ko
+ __alloc_percpu
+ bio_endio
+ bio_end_io_acct_remapped
+ bio_start_io_acct
+ __blk_alloc_disk
+ blk_cleanup_disk
+ blk_queue_flag_clear
+ blk_queue_flag_set
+ blk_queue_io_min
+ blk_queue_io_opt
+ blk_queue_logical_block_size
+ blk_queue_max_discard_sectors
+ blk_queue_max_write_zeroes_sectors
+ blk_queue_physical_block_size
+ crypto_alloc_base
+ crypto_comp_compress
+ crypto_comp_decompress
+ crypto_destroy_tfm
+ crypto_has_alg
+ del_gendisk
+ device_add_disk
+ disk_end_io_acct
+ disk_start_io_acct
+ flush_dcache_page
+ free_percpu
+ fsync_bdev
+ idr_alloc
+ idr_destroy
+ idr_find
+ idr_for_each
+ idr_remove
+ kstrtou16
+ memparse
+ memset64
+ __num_online_cpus
+ page_endio
+ __register_blkdev
+ set_capacity
+ set_capacity_and_notify
+ unregister_blkdev
+ zs_compact
+ zs_create_pool
+ zs_destroy_pool
+ zs_free
+ zs_get_total_pages
+ zs_huge_class_size
+ zs_malloc
+ zs_map_object
+ zs_pool_stats
+ zs_unmap_object
+
+# required by zsmalloc.ko
+ alloc_anon_inode
+ contig_page_data
+ dec_zone_page_state
+ inc_zone_page_state
+ init_pseudo
+ kern_mount
+ kern_unmount
+ kill_anon_super
+ kmem_cache_alloc
+ kmem_cache_create
+ kmem_cache_destroy
+ kmem_cache_free
+ page_mapping
+ _raw_read_lock
+ _raw_read_unlock
+ _raw_write_lock
+ _raw_write_unlock
+ wait_on_page_bit
diff --git a/android/abi_gki_aarch64_mtk b/android/abi_gki_aarch64_mtk
index f3916ab..10f50a7 100644
--- a/android/abi_gki_aarch64_mtk
+++ b/android/abi_gki_aarch64_mtk
@@ -1249,6 +1249,7 @@
__netdev_alloc_skb
netdev_err
netdev_info
+ netdev_upper_get_next_dev_rcu
netdev_warn
netif_carrier_off
netif_carrier_on
@@ -1419,6 +1420,7 @@
perf_trace_run_bpf_submit
pfn_is_map_memory
phy_attached_info
+ phy_basic_features
phy_connect
phy_disconnect
phy_do_ioctl_running
@@ -1426,6 +1428,7 @@
phy_ethtool_nway_reset
phy_ethtool_set_link_ksettings
phy_exit
+ phy_gbit_features
phy_get
phy_init
phy_loopback
@@ -2153,6 +2156,7 @@
tty_chars_in_buffer
tty_driver_flush_buffer
tty_flip_buffer_push
+ tty_get_char_size
tty_insert_flip_string_fixed_flag
tty_ldisc_flush
tty_register_ldisc
@@ -2304,6 +2308,7 @@
usbnet_disconnect
usbnet_get_drvinfo
usbnet_get_endpoints
+ usbnet_get_ethernet_addr
usbnet_get_link
usbnet_get_link_ksettings_mii
usbnet_get_msglevel
diff --git a/android/abi_gki_aarch64_oplus b/android/abi_gki_aarch64_oplus
index 32e3fdf..c340ea3 100644
--- a/android/abi_gki_aarch64_oplus
+++ b/android/abi_gki_aarch64_oplus
@@ -415,6 +415,9 @@
__traceiter_android_vh_meminfo_proc_show
__traceiter_android_vh_modify_thermal_cpu_get_power
__traceiter_android_vh_mutex_init
+ __traceiter_android_vh_mutex_can_spin_on_owner
+ __traceiter_android_vh_mutex_opt_spin_finish
+ __traceiter_android_vh_mutex_opt_spin_start
__traceiter_android_vh_page_referenced_check_bypass
__traceiter_android_vh_page_should_be_protected
__traceiter_android_vh_page_trylock_clear
@@ -427,6 +430,9 @@
__traceiter_android_vh_record_rtmutex_lock_starttime
__traceiter_android_vh_record_rwsem_lock_starttime
__traceiter_android_vh_rmqueue
+ __traceiter_android_vh_rwsem_can_spin_on_owner
+ __traceiter_android_vh_rwsem_opt_spin_finish
+ __traceiter_android_vh_rwsem_opt_spin_start
__traceiter_android_vh_rwsem_wake_finish
__traceiter_android_vh_save_track_hash
__traceiter_android_vh_sched_show_task
@@ -500,6 +506,9 @@
__tracepoint_android_vh_meminfo_proc_show
__tracepoint_android_vh_modify_thermal_cpu_get_power
__tracepoint_android_vh_mutex_init
+ __tracepoint_android_vh_mutex_can_spin_on_owner
+ __tracepoint_android_vh_mutex_opt_spin_finish
+ __tracepoint_android_vh_mutex_opt_spin_start
__tracepoint_android_vh_page_referenced_check_bypass
__tracepoint_android_vh_page_should_be_protected
__tracepoint_android_vh_page_trylock_clear
@@ -512,6 +521,9 @@
__tracepoint_android_vh_record_rtmutex_lock_starttime
__tracepoint_android_vh_record_rwsem_lock_starttime
__tracepoint_android_vh_rmqueue
+ __tracepoint_android_vh_rwsem_can_spin_on_owner
+ __tracepoint_android_vh_rwsem_opt_spin_finish
+ __tracepoint_android_vh_rwsem_opt_spin_start
__tracepoint_android_vh_rwsem_wake_finish
__tracepoint_android_vh_sched_show_task
__tracepoint_android_vh_save_track_hash
diff --git a/android/abi_gki_aarch64_pasa b/android/abi_gki_aarch64_pasa
index b5c49c4..425dbd7 100644
--- a/android/abi_gki_aarch64_pasa
+++ b/android/abi_gki_aarch64_pasa
@@ -14,3 +14,5 @@
hid_report_raw_event
hid_unregister_driver
hidinput_calc_abs_res
+ iio_trigger_generic_data_rdy_poll
+ input_device_enabled
diff --git a/android/abi_gki_aarch64_qcom b/android/abi_gki_aarch64_qcom
index 2c0ddca..b324fc7 100644
--- a/android/abi_gki_aarch64_qcom
+++ b/android/abi_gki_aarch64_qcom
@@ -89,6 +89,7 @@
__blk_alloc_disk
blk_cleanup_disk
blk_cleanup_queue
+ blkdev_compat_ptr_ioctl
blkdev_get_by_dev
__blkdev_issue_discard
blkdev_put
@@ -140,7 +141,6 @@
blk_set_stacking_limits
blk_start_plug
blk_sync_queue
- blkdev_compat_ptr_ioctl
blocking_notifier_call_chain
blocking_notifier_chain_register
blocking_notifier_chain_unregister
@@ -258,6 +258,7 @@
contig_page_data
_copy_from_iter
copy_from_kernel_nofault
+ copy_page
__cpu_active_mask
cpu_bit_bitmap
cpufreq_cpu_get
@@ -320,6 +321,7 @@
crypto_destroy_tfm
crypto_enqueue_request
crypto_has_alg
+ crypto_inc
crypto_init_queue
crypto_unregister_ahash
crypto_unregister_skcipher
@@ -418,6 +420,7 @@
devm_gpio_request_one
devm_hwspin_lock_register
devm_iio_channel_get
+ devm_iio_channel_get_all
devm_iio_device_alloc
__devm_iio_device_register
devm_input_allocate_device
@@ -491,10 +494,10 @@
dev_pm_opp_of_cpumask_remove_table
dev_pm_opp_of_find_icc_paths
dev_pm_opp_of_register_em
- dev_pm_opp_remove
dev_pm_opp_of_remove_table
dev_pm_opp_put
dev_pm_opp_put_clkname
+ dev_pm_opp_remove
dev_pm_opp_remove_all_dynamic
dev_pm_opp_set_clkname
dev_pm_opp_set_opp
@@ -813,6 +816,7 @@
get_unused_fd_flags
get_user_ifreq
get_zeroed_page
+ gf128mul_lle
gic_cpu_init
gic_dist_init
gic_dist_wait_for_rwp
@@ -834,6 +838,7 @@
gpiod_direction_input
gpiod_direction_output
gpiod_direction_output_raw
+ gpiod_get_direction
gpiod_get_optional
gpiod_get_raw_value
gpiod_get_value
@@ -929,16 +934,35 @@
idr_preload
idr_remove
idr_replace
+ iio_alloc_pollfunc
iio_buffer_init
iio_buffer_put
iio_channel_get
+ iio_channel_get_all
iio_channel_release
+ iio_channel_release_all
+ iio_dealloc_pollfunc
iio_device_attach_buffer
iio_device_claim_direct_mode
+ iio_device_id
iio_device_release_direct_mode
+ iio_get_time_ns
+ iio_kfifo_allocate
iio_push_event
iio_push_to_buffers
iio_read_channel_processed
+ iio_read_channel_raw
+ iio_read_const_attr
+ iio_trigger_alloc
+ iio_triggered_buffer_cleanup
+ iio_triggered_buffer_setup_ext
+ iio_trigger_free
+ iio_trigger_notify_done
+ iio_trigger_poll
+ __iio_trigger_register
+ iio_trigger_unregister
+ iio_update_buffers
+ iio_validate_scan_mask_onehot
iio_write_channel_raw
import_iovec
in4_pton
@@ -973,6 +997,8 @@
input_register_handler
input_set_abs_params
input_set_capability
+ input_set_poll_interval
+ input_setup_polling
input_unregister_handle
input_unregister_handler
interval_tree_insert
@@ -1064,6 +1090,8 @@
irq_set_chained_handler_and_data
irq_set_chip_and_handler_name
irq_set_chip_data
+ __irq_set_handler
+ irq_set_handler_data
irq_set_irqchip_state
irq_set_irq_type
irq_set_irq_wake
@@ -1252,8 +1280,8 @@
misc_register
mmc_cqe_request_done
mmc_execute_tuning
- mmc_get_ext_csd
mmc_get_card
+ mmc_get_ext_csd
mmc_hs200_tuning
mmc_issue_type
mmc_of_parse
@@ -1265,8 +1293,8 @@
mmc_regulator_set_vqmmc
mmc_retune_hold
mmc_retune_release
- mmc_select_card
mmc_select_bus_width
+ mmc_select_card
mmc_select_hs
mmc_select_hs400
mmc_select_hs_ddr
@@ -1814,6 +1842,7 @@
rpmsg_get_signals
rpmsg_poll
rpmsg_register_device
+ rpmsg_rx_done
rpmsg_send
rpmsg_set_signals
rpmsg_trysend
@@ -2248,6 +2277,7 @@
__traceiter_android_vh_save_cpu_resume
__traceiter_android_vh_save_hib_resume_bdev
__traceiter_android_vh_scheduler_tick
+ __traceiter_android_vh_sd_update_bus_speed_mode
__traceiter_android_vh_show_resume_epoch_val
__traceiter_android_vh_show_suspend_epoch_val
__traceiter_android_vh_skip_swap_map_write
@@ -2268,6 +2298,8 @@
__traceiter_ipi_raise
__traceiter_irq_handler_entry
__traceiter_map
+ __traceiter_rwmmio_read
+ __traceiter_rwmmio_write
__traceiter_sched_overutilized_tp
__traceiter_sched_switch
__traceiter_suspend_resume
@@ -2367,6 +2399,7 @@
__tracepoint_android_vh_save_cpu_resume
__tracepoint_android_vh_save_hib_resume_bdev
__tracepoint_android_vh_scheduler_tick
+ __tracepoint_android_vh_sd_update_bus_speed_mode
__tracepoint_android_vh_show_resume_epoch_val
__tracepoint_android_vh_show_suspend_epoch_val
__tracepoint_android_vh_skip_swap_map_write
@@ -2390,6 +2423,8 @@
tracepoint_probe_register
tracepoint_probe_register_prio
tracepoint_probe_unregister
+ __tracepoint_rwmmio_read
+ __tracepoint_rwmmio_write
__tracepoint_sched_overutilized_tp
__tracepoint_sched_switch
__tracepoint_suspend_resume
@@ -2503,6 +2538,8 @@
usb_free_coherent
usb_function_register
usb_function_unregister
+ usb_gadget_connect
+ usb_gadget_disconnect
usb_gadget_wakeup
usb_ifnum_to_if
usb_interface_id
@@ -2630,3 +2667,4 @@
xsk_tx_peek_desc
xsk_tx_release
xsk_uses_need_wakeup
+ zap_vma_ptes
diff --git a/android/abi_gki_aarch64_sunxi b/android/abi_gki_aarch64_sunxi
index 8c99442..63183e8 100644
--- a/android/abi_gki_aarch64_sunxi
+++ b/android/abi_gki_aarch64_sunxi
@@ -287,6 +287,7 @@
devm_nvmem_register
devm_of_clk_add_hw_provider
devm_of_iomap
+ devm_pci_remap_cfgspace
devm_pinctrl_get
devm_pinctrl_put
devm_pinctrl_register
@@ -894,6 +895,7 @@
of_nvmem_cell_get
of_parse_phandle
of_parse_phandle_with_args
+ of_pci_get_max_link_speed
of_property_count_elems_of_size
of_property_match_string
of_property_read_string
@@ -941,6 +943,7 @@
pci_unregister_driver
pci_write_config_byte
pci_write_config_word
+ pcie_link_speed
PDE_DATA
__per_cpu_offset
perf_trace_buf_alloc
diff --git a/android/abi_gki_aarch64_unisoc b/android/abi_gki_aarch64_unisoc
index e01c806..7244a96 100644
--- a/android/abi_gki_aarch64_unisoc
+++ b/android/abi_gki_aarch64_unisoc
@@ -1147,6 +1147,7 @@
__traceiter_android_vh_mmc_update_partition_status
__traceiter_android_vh_modify_thermal_request_freq
__traceiter_android_vh_modify_thermal_target_freq
+ __traceiter_android_vh_modify_thermal_throttle_update
__traceiter_android_vh_scheduler_tick
__traceiter_android_vh_set_wake_flags
__traceiter_android_vh_thermal_power_cap
@@ -1242,6 +1243,7 @@
__tracepoint_android_vh_mmc_update_partition_status
__tracepoint_android_vh_modify_thermal_request_freq
__tracepoint_android_vh_modify_thermal_target_freq
+ __tracepoint_android_vh_modify_thermal_throttle_update
__tracepoint_android_vh_scheduler_tick
__tracepoint_android_vh_set_wake_flags
__tracepoint_android_vh_thermal_power_cap
diff --git a/android/abi_gki_aarch64_vivo b/android/abi_gki_aarch64_vivo
index 0660a734..b1a97e2 100644
--- a/android/abi_gki_aarch64_vivo
+++ b/android/abi_gki_aarch64_vivo
@@ -335,6 +335,7 @@
del_gendisk
del_timer
del_timer_sync
+ dentry_path_raw
destroy_workqueue
dev_alloc_name
dev_coredumpm
diff --git a/android/abi_gki_aarch64_xiaomi b/android/abi_gki_aarch64_xiaomi
index b267fba..a318a00 100644
--- a/android/abi_gki_aarch64_xiaomi
+++ b/android/abi_gki_aarch64_xiaomi
@@ -14,6 +14,8 @@
#required by memory module
blk_execute_rq
blk_rq_map_kern
+ nr_free_buffer_pages
+ mmc_set_blocklen
scsi_device_lookup
scsi_host_lookup
scsi_host_put
@@ -104,6 +106,21 @@
__traceiter_android_vh_direct_io_update_bio
__traceiter_android_vh_loop_prepare_cmd
+#required by bfq module
+ __blkg_prfill_rwstat
+ blkg_rwstat_recursive_sum
+ blkg_prfill_rwstat
+ blkg_conf_finish
+ blkg_conf_prep
+ __blkg_prfill_u64
+ blkcg_print_blkgs
+ blkg_rwstat_exit
+ blkg_rwstat_init
+ percpu_counter_add_batch
+ io_cgrp_subsys_on_dfl_key
+ ioc_lookup_icq
+ bdi_dev_name
+
#required by cs35l41 module
regmap_raw_write_async
snd_soc_bytes_tlv_callback
@@ -523,3 +540,7 @@
__traceiter_android_rvh_ctl_dirty_rate
__tracepoint_android_rvh_ctl_dirty_rate
+
+#required by io module
+ __traceiter_android_vh_psi_group
+ __tracepoint_android_vh_psi_group
diff --git a/android/abi_gki_aarch64_zeku b/android/abi_gki_aarch64_zeku
new file mode 100644
index 0000000..3a8ca98
--- /dev/null
+++ b/android/abi_gki_aarch64_zeku
@@ -0,0 +1,1262 @@
+[abi_symbol_list]
+# commonly used symbols
+ access_process_vm
+ add_uevent_var
+ alloc_chrdev_region
+ __alloc_pages
+ __alloc_percpu
+ __alloc_skb
+ alloc_workqueue
+ __arch_copy_from_user
+ __arch_copy_to_user
+ arm64_const_caps_ready
+ arm64_use_ng_mappings
+ __arm_smccc_smc
+ atomic_notifier_chain_register
+ atomic_notifier_chain_unregister
+ bio_endio
+ bitmap_free
+ bitmap_parselist
+ bitmap_print_to_pagebuf
+ bitmap_zalloc
+ __blk_alloc_disk
+ blk_cleanup_disk
+ blk_queue_flag_clear
+ blk_queue_flag_set
+ blk_queue_physical_block_size
+ bus_register
+ bus_unregister
+ cancel_work_sync
+ cdev_add
+ cdev_del
+ cdev_init
+ __cfi_slowpath_diag
+ __check_object_size
+ __class_create
+ class_destroy
+ __class_register
+ class_unregister
+ clk_disable
+ clk_enable
+ clk_get_rate
+ clk_prepare
+ clk_put
+ clk_set_rate
+ clk_unprepare
+ compat_ptr_ioctl
+ complete
+ component_add
+ component_del
+ __const_udelay
+ contig_page_data
+ cpu_bit_bitmap
+ __cpuhp_remove_state
+ __cpuhp_setup_state
+ cpu_hwcap_keys
+ cpu_hwcaps
+ cpumask_next
+ cpu_number
+ __cpu_online_mask
+ __cpu_possible_mask
+ __cpu_present_mask
+ crc32_le
+ crypto_alloc_base
+ crypto_alloc_shash
+ crypto_comp_compress
+ crypto_comp_decompress
+ crypto_destroy_tfm
+ debugfs_create_dir
+ debugfs_create_file
+ debugfs_create_regset32
+ debugfs_remove
+ default_llseek
+ delayed_work_timer_fn
+ del_gendisk
+ destroy_workqueue
+ dev_driver_string
+ _dev_err
+ device_add
+ device_add_disk
+ device_create
+ device_create_file
+ device_del
+ device_destroy
+ device_for_each_child
+ device_get_match_data
+ device_initialize
+ device_property_present
+ device_property_read_u32_array
+ device_register
+ device_remove_file
+ device_unregister
+ _dev_info
+ devm_clk_get
+ devm_clk_put
+ devm_free_irq
+ devm_ioremap_resource
+ devm_ioremap_wc
+ devm_kfree
+ devm_kmalloc
+ devm_kstrdup
+ devm_mbox_controller_register
+ devm_platform_get_and_ioremap_resource
+ devm_platform_ioremap_resource
+ devm_platform_ioremap_resource_byname
+ __devm_regmap_init
+ __devm_regmap_init_i2c
+ devm_regulator_get
+ devm_regulator_register
+ devm_request_threaded_irq
+ __devm_reset_control_get
+ devm_thermal_zone_of_sensor_register
+ _dev_notice
+ _dev_printk
+ dev_set_name
+ _dev_warn
+ disable_irq
+ disable_irq_nosync
+ dma_alloc_attrs
+ dma_buf_attach
+ dma_buf_begin_cpu_access
+ dma_buf_detach
+ dma_buf_end_cpu_access
+ dma_buf_export
+ dma_buf_fd
+ dma_buf_get
+ dma_buf_map_attachment
+ dma_buf_put
+ dma_buf_unmap_attachment
+ dma_buf_vmap
+ dma_buf_vunmap
+ dma_free_attrs
+ dma_heap_add
+ dma_heap_find
+ dma_heap_get_name
+ dmam_alloc_attrs
+ dma_map_page_attrs
+ dma_map_sgtable
+ dma_set_coherent_mask
+ dma_set_mask
+ dma_sync_sg_for_cpu
+ dma_sync_sg_for_device
+ dma_sync_single_for_device
+ dma_unmap_page_attrs
+ dma_unmap_sg_attrs
+ down_read
+ down_write
+ d_path
+ driver_create_file
+ driver_register
+ driver_unregister
+ dump_stack
+ enable_irq
+ _find_first_zero_bit
+ finish_wait
+ flush_dcache_page
+ flush_work
+ flush_workqueue
+ free_irq
+ __free_pages
+ free_pages
+ free_percpu
+ generic_handle_irq
+ genlmsg_put
+ genl_register_family
+ genl_unregister_family
+ get_cpu_device
+ get_device
+ __get_free_pages
+ get_zeroed_page
+ gic_nonsecure_priorities
+ handle_edge_irq
+ handle_level_irq
+ hrtimer_cancel
+ hrtimer_init
+ hrtimer_start_range_ns
+ i2c_del_driver
+ i2c_register_driver
+ idr_alloc
+ idr_destroy
+ idr_find
+ idr_remove
+ init_net
+ __init_rwsem
+ __init_swait_queue_head
+ init_task
+ init_timer_key
+ init_wait_entry
+ __init_waitqueue_head
+ iommu_get_domain_for_dev
+ iommu_unmap
+ __ioremap
+ iounmap
+ __irq_domain_add
+ irq_domain_remove
+ irq_get_irq_data
+ irq_of_parse_and_map
+ __irq_resolve_mapping
+ irq_set_irq_wake
+ is_vmalloc_addr
+ jiffies
+ jiffies_to_msecs
+ kasan_flag_enabled
+ kasprintf
+ kernel_kobj
+ kfree
+ kfree_skb
+ kimage_voffset
+ __kmalloc
+ kmalloc_caches
+ kmalloc_order_trace
+ kmem_cache_alloc_trace
+ kmemdup
+ kobject_init_and_add
+ kobject_put
+ kstrtoint
+ kstrtou16
+ kstrtouint
+ kstrtoull
+ kthread_create_on_node
+ __kthread_init_worker
+ kthread_should_stop
+ kthread_stop
+ kthread_worker_fn
+ ktime_get
+ ktime_get_mono_fast_ns
+ ktime_get_real_ts64
+ ktime_get_with_offset
+ kvfree
+ kvmalloc_node
+ __list_add_valid
+ __list_del_entry_valid
+ mbox_free_channel
+ mbox_request_channel
+ memcpy
+ __memcpy_toio
+ memremap
+ mem_section
+ memset
+ memstart_addr
+ memunmap
+ misc_deregister
+ misc_register
+ module_layout
+ __msecs_to_jiffies
+ msleep
+ __mutex_init
+ mutex_is_locked
+ mutex_lock
+ mutex_unlock
+ netlink_unicast
+ nla_put
+ nr_cpu_ids
+ __num_online_cpus
+ of_address_to_resource
+ of_clk_get_by_name
+ of_device_is_available
+ of_dma_is_coherent
+ of_find_compatible_node
+ of_find_device_by_node
+ of_find_property
+ of_get_child_by_name
+ of_get_property
+ of_get_regulator_init_data
+ of_iomap
+ of_match_device
+ of_match_node
+ of_n_addr_cells
+ of_n_size_cells
+ of_parse_phandle
+ of_parse_phandle_with_fixed_args
+ of_phandle_iterator_init
+ of_phandle_iterator_next
+ of_platform_depopulate
+ of_platform_populate
+ of_property_count_elems_of_size
+ of_property_match_string
+ of_property_read_string
+ of_property_read_string_helper
+ of_property_read_u32_index
+ of_property_read_u64
+ of_property_read_variable_u32_array
+ of_property_read_variable_u8_array
+ of_reserved_mem_lookup
+ page_endio
+ panic
+ panic_notifier_list
+ param_ops_bool
+ param_ops_int
+ param_ops_uint
+ pci_disable_device
+ pci_enable_device
+ pci_irq_vector
+ pci_read_config_dword
+ __pci_register_driver
+ pci_unregister_driver
+ PDE_DATA
+ __per_cpu_offset
+ platform_bus_type
+ platform_device_unregister
+ __platform_driver_register
+ platform_driver_unregister
+ platform_get_irq
+ platform_get_irq_byname
+ platform_get_resource
+ platform_get_resource_byname
+ __pm_runtime_disable
+ pm_runtime_enable
+ __pm_runtime_idle
+ __pm_runtime_resume
+ pm_runtime_set_autosuspend_delay
+ __pm_runtime_set_status
+ __pm_runtime_suspend
+ __pm_runtime_use_autosuspend
+ preempt_schedule
+ preempt_schedule_notrace
+ prepare_to_wait_event
+ print_hex_dump
+ _printk
+ proc_create
+ proc_create_data
+ proc_mkdir
+ proc_remove
+ put_device
+ __put_page
+ __put_task_struct
+ queue_delayed_work_on
+ queue_work_on
+ ___ratelimit
+ _raw_read_lock
+ _raw_read_unlock
+ _raw_spin_lock
+ _raw_spin_lock_bh
+ _raw_spin_lock_irqsave
+ _raw_spin_unlock
+ _raw_spin_unlock_bh
+ _raw_spin_unlock_irqrestore
+ _raw_write_lock
+ _raw_write_unlock
+ __rcu_read_lock
+ __rcu_read_unlock
+ refcount_warn_saturate
+ __register_blkdev
+ register_chrdev_region
+ register_restart_handler
+ __register_rpmsg_driver
+ regmap_read
+ regmap_update_bits_base
+ regmap_write
+ regulator_disable
+ regulator_enable
+ regulator_is_enabled
+ regulator_set_voltage
+ remap_pfn_range
+ remove_proc_entry
+ request_threaded_irq
+ reset_control_assert
+ reset_control_deassert
+ rpmsg_create_ept
+ rpmsg_register_device
+ rpmsg_send
+ rpmsg_trysend
+ rproc_add
+ rproc_add_carveout
+ rproc_alloc
+ rproc_boot
+ rproc_del
+ rproc_elf_get_boot_addr
+ rproc_elf_load_rsc_table
+ rproc_elf_load_segments
+ rproc_elf_sanity_check
+ rproc_free
+ rproc_mem_entry_init
+ rproc_of_resm_mem_entry_init
+ rproc_vq_interrupt
+ runqueues
+ sched_clock
+ sched_set_fifo
+ schedule
+ schedule_timeout
+ scnprintf
+ seq_lseek
+ seq_printf
+ seq_puts
+ seq_read
+ seq_release
+ seq_write
+ set_capacity
+ set_cpus_allowed_ptr
+ sg_alloc_table
+ sg_copy_to_buffer
+ sg_free_table
+ sg_init_one
+ sg_nents
+ sg_next
+ __sg_page_iter_next
+ __sg_page_iter_start
+ simple_read_from_buffer
+ single_open
+ single_release
+ skb_dequeue
+ skb_put
+ skb_queue_tail
+ snprintf
+ __spi_register_driver
+ spi_sync
+ sprintf
+ sscanf
+ __stack_chk_fail
+ stack_trace_save
+ strchr
+ strcmp
+ strcpy
+ strim
+ strlcat
+ strlcpy
+ strlen
+ strncmp
+ strncpy
+ strnlen
+ strscpy
+ strstr
+ __sw_hweight64
+ syscon_regmap_lookup_by_phandle
+ sysfs_create_group
+ sysfs_emit
+ sysfs_remove_group
+ sysfs_streq
+ system_wq
+ sys_tz
+ tasklet_init
+ __tasklet_schedule
+ thermal_zone_device_update
+ tracepoint_probe_register
+ tracepoint_probe_unregister
+ __ubsan_handle_cfi_check_fail_abort
+ __udelay
+ unregister_blkdev
+ unregister_chrdev_region
+ unregister_rpmsg_driver
+ up_read
+ up_write
+ usleep_range_state
+ vabits_actual
+ vfree
+ vmalloc
+ vmalloc_to_page
+ vmap
+ vscnprintf
+ vsnprintf
+ vunmap
+ vzalloc
+ wait_for_completion
+ wait_for_completion_interruptible
+ wait_for_completion_interruptible_timeout
+ wait_for_completion_timeout
+ __wake_up
+ wake_up_process
+ __warn_printk
+ __xa_alloc
+ xa_erase
+
+# required by ccree.ko
+ bcmp
+ crypto_authenc_extractkeys
+ crypto_register_aead
+ crypto_register_ahash
+ crypto_register_skcipher
+ crypto_shash_digest
+ crypto_unregister_aead
+ crypto_unregister_ahash
+ crypto_unregister_skcipher
+ debugfs_create_bool
+ des_expand_key
+ devm_clk_get_optional
+ dma_map_sg_attrs
+ dma_pool_alloc
+ dma_pool_create
+ dma_pool_destroy
+ dma_pool_free
+ dma_supported
+ dma_sync_single_for_cpu
+ kfree_sensitive
+ of_device_get_match_data
+ sg_copy_buffer
+ sg_nents_for_len
+ sg_zero_buffer
+ tasklet_kill
+
+# required by chunk_heap.ko
+ gen_pool_add_owner
+ gen_pool_create
+ gen_pool_dma_alloc_align
+ gen_pool_free_owner
+ of_property_read_u64_index
+
+# required by dmabuf_monitor.ko
+ dma_heap_put
+ get_each_dmabuf
+
+# required by dw_timer.ko
+ clockevent_delta2ns
+ clockevents_register_device
+ clocks_calc_mult_shift
+ __clocksource_register_scale
+ of_find_matching_node_and_match
+ __of_reset_control_get
+ sched_clock_register
+
+# required by dwc3-zeku.ko
+ device_set_wakeup_capable
+ platform_device_add
+ platform_device_alloc
+ platform_device_del
+ platform_device_put
+
+# required by fbox.ko
+ down_interruptible
+ find_pid_ns
+ pid_task
+ rtc_time64_to_tm
+ seq_open_private
+ seq_release_private
+ strncat
+ task_active_pid_ns
+ up
+ vmalloc_user
+
+# required by feng-regulator.ko
+ rdev_get_drvdata
+
+# required by ffa-module.ko
+ alloc_pages_exact
+ arm_smccc_1_1_get_conduit
+ arm_smccc_1_2_hvc
+ arm_smccc_1_2_smc
+ arm_smccc_get_version
+ bus_find_device
+ bus_for_each_dev
+ device_match_any
+ free_pages_exact
+ uuid_null
+ uuid_parse
+
+# required by fs_monitor.ko
+ get_fs_type
+ iterate_supers_type
+ __traceiter_wbc_writepage
+ __tracepoint_wbc_writepage
+
+# required by gnpu-driver.ko
+ dma_heap_buffer_alloc
+ init_iova_domain
+ iommu_domain_alloc
+ iommu_domain_free
+ iommu_present
+ iova_cache_get
+ iova_cache_put
+ netlink_broadcast
+ nonseekable_open
+ of_device_is_compatible
+ xa_load
+
+# required by hang_monitor.ko
+ find_get_pid
+ get_pid_task
+ put_pid
+ tasklist_lock
+ __task_pid_nr_ns
+
+# required by i2c.ko
+ devm_gpiod_get_optional
+ i2c_add_numbered_adapter
+ i2c_del_adapter
+ i2c_generic_scl_recovery
+ i2c_parse_fw_timings
+ i2c_recover_bus
+ pm_suspend_global_flags
+ syscon_node_to_regmap
+
+# required by i3c-master-zeku.ko
+ i3c_master_get_free_addr
+ i3c_master_register
+ i3c_master_set_info
+ i3c_master_unregister
+
+# required by mailbox.ko
+ irq_modify_status
+ irq_set_chip_and_handler_name
+ irq_set_chip_data
+ of_count_phandle_with_args
+ of_find_node_with_property
+ of_parse_phandle_with_args
+
+# required by maricam_mem_mgr.ko
+ dma_heap_bufferfd_alloc
+
+# required by mcDrvModule.ko
+ blocking_notifier_call_chain
+ blocking_notifier_chain_register
+ blocking_notifier_chain_unregister
+ crypto_shash_final
+ crypto_shash_update
+ debugfs_create_u32
+ freezing_slow_path
+ get_task_mm
+ krealloc
+ kstrtol_from_user
+ kstrtouint_from_user
+ kthread_queue_work
+ ktime_get_raw_ts64
+ mmput
+ pin_user_pages
+ __refrigerator
+ release_pages
+ sg_alloc_table_from_pages_segment
+ sg_miter_next
+ sg_miter_start
+ sg_miter_stop
+ system_freezing_cnt
+ unpin_user_page
+ wait_for_completion_killable
+
+# required by memory_monitor.ko
+ __traceiter_android_vh_alloc_pages_slowpath
+ __tracepoint_android_vh_alloc_pages_slowpath
+
+# required by mpam_arch.ko
+ bitmap_alloc
+ _find_first_bit
+ _find_next_bit
+ kobject_add
+ kobject_init
+ kobj_sysfs_ops
+ on_each_cpu_cond_mask
+
+# required by mpam_policy.ko
+ android_rvh_probe_register
+ current_time
+ d_add
+ d_alloc_name
+ d_make_root
+ dput
+ find_task_by_vpid
+ fs_kobj
+ get_next_ino
+ get_tree_single
+ init_user_ns
+ kill_litter_super
+ new_inode
+ register_filesystem
+ simple_dir_inode_operations
+ simple_dir_operations
+ simple_statfs
+ smp_call_function_single
+ sysfs_create_mount_point
+ sysfs_remove_mount_point
+ __traceiter_android_rvh_sched_fork
+ __traceiter_android_vh_mpam_set
+ __tracepoint_android_rvh_sched_fork
+ __tracepoint_android_vh_mpam_set
+ unregister_filesystem
+
+# required by mpmm_cluster.ko
+ cpu_subsys
+
+# required by mrdump.ko
+ copy_from_kernel_nofault
+ init_uts_ns
+ kernfs_path_from_node
+ kimage_vaddr
+ __memset_io
+ of_find_node_opts_by_path
+ oops_in_progress
+ param_get_ulong
+ param_set_ulong
+ _raw_read_trylock
+ _raw_spin_trylock
+ register_die_notifier
+ register_module_notifier
+ strcspn
+ strnstr
+ unregister_die_notifier
+ unregister_module_notifier
+
+# required by oplus_touch.ko
+ cancel_delayed_work
+ cancel_delayed_work_sync
+ complete_all
+ devm_gpio_request
+ devm_input_allocate_device
+ devm_pinctrl_get
+ gpiod_direction_output_raw
+ gpiod_get_raw_value
+ gpiod_to_irq
+ gpio_free
+ gpio_request
+ gpio_to_desc
+ hrtimer_active
+ i2c_transfer
+ iio_channel_get
+ iio_read_channel_processed
+ input_allocate_device
+ input_event
+ input_free_device
+ input_mt_init_slots
+ input_mt_report_slot_state
+ input_register_device
+ input_set_abs_params
+ int_sqrt
+ irq_to_desc
+ __kfifo_alloc
+ kobject_create_and_add
+ of_get_named_gpio_flags
+ param_ops_string
+ pinctrl_lookup_state
+ pinctrl_select_state
+ __pm_relax
+ __pm_stay_awake
+ regulator_count_voltages
+ regulator_get
+ regulator_get_voltage
+ regulator_put
+ regulator_set_load
+ release_firmware
+ remove_proc_subtree
+ request_firmware
+ simple_open
+ strcat
+ thermal_zone_get_temp
+ thermal_zone_get_zone_by_name
+ wakeup_source_register
+ wakeup_source_unregister
+
+# required by pcie-ep-test.ko
+ _dev_alert
+ pci_alloc_irq_vectors_affinity
+ pci_disable_msi
+ pci_set_master
+
+# required by phy-zeku-usbdrd.ko
+ devm_phy_create
+
+# required by protect_heap.ko
+ dma_heap_get_dev
+
+# required by pta_drv.ko
+ add_wait_queue
+ alloc_netdev_mqs
+ capable
+ csum_ipv6_magic
+ csum_partial
+ csum_tcpudp_nofold
+ _ctype
+ __dev_kfree_skb_any
+ dql_completed
+ ether_setup
+ free_netdev
+ get_random_bytes
+ __get_task_comm
+ in_aton
+ init_dummy_netdev
+ __ioread32_copy
+ kfree_const
+ kstrdup_const
+ kstrtobool
+ kvasprintf
+ __napi_alloc_skb
+ napi_complete_done
+ napi_disable
+ napi_enable
+ __napi_schedule
+ napi_schedule_prep
+ __netdev_alloc_skb
+ netdev_set_num_tc
+ netdev_set_tc_queue
+ netif_carrier_off
+ netif_carrier_on
+ netif_napi_add
+ netif_receive_skb_list
+ netif_rx
+ netif_schedule_queue
+ netif_tx_wake_queue
+ pskb_expand_head
+ raw_notifier_call_chain
+ raw_notifier_chain_register
+ raw_notifier_chain_unregister
+ register_netdev
+ remove_wait_queue
+ rproc_shutdown
+ skb_add_rx_frag
+ skb_dump
+ skb_pull
+ skb_push
+ sock_create_kern
+ sock_release
+ softnet_data
+ strcasecmp
+ synchronize_net
+ sysfs_emit_at
+ unregister_netdev
+ wait_woken
+ woken_wake_function
+
+# required by ramdisk.ko
+ vm_map_ram
+
+# required by reset-z3.ko
+ reset_controller_register
+
+# required by sc_heap.ko
+ alloc_iova
+ find_iova
+ __free_iova
+ iommu_map_sg
+
+# required by sdhci-zeku.ko
+ dma_get_required_mask
+ mmc_of_parse
+ sdhci_add_host
+ sdhci_adma_write_desc
+ sdhci_enable_clk
+ sdhci_get_property
+ sdhci_pltfm_free
+ sdhci_pltfm_init
+ sdhci_remove_host
+ sdhci_reset
+ sdhci_resume_host
+ sdhci_set_bus_width
+ sdhci_set_uhs_signaling
+ sdhci_suspend_host
+
+# required by sme-rproc.ko
+ cma_alloc
+ cma_release
+ dma_contiguous_default_area
+ iommu_map
+
+# required by snd_machine.ko
+ devm_snd_soc_register_card
+ snd_soc_of_parse_card_name
+ snd_soc_pm_ops
+ snd_soc_unregister_card
+
+# required by snd_platform.ko
+ snd_ctl_add
+ snd_ctl_new1
+ snd_pcm_format_width
+ snd_pcm_hw_constraint_integer
+ snd_pcm_hw_constraint_list
+ snd_pcm_hw_constraint_minmax
+ snd_pcm_lib_ioctl
+ snd_pcm_period_elapsed
+ snd_soc_dapm_add_routes
+ snd_soc_dapm_ignore_suspend
+ snd_soc_dapm_kcontrol_widget
+ snd_soc_dapm_mixer_update_power
+ snd_soc_dapm_new_controls
+ snd_soc_dapm_new_widgets
+ snd_soc_info_volsw
+ snd_soc_new_compress
+ snd_soc_register_component
+ snd_soc_rtdcom_lookup
+ snd_soc_unregister_component
+
+# required by spi-test.ko
+ spi_setup
+
+# required by spi-zeku.ko
+ __spi_alloc_controller
+ spi_controller_resume
+ spi_controller_suspend
+ spi_delay_exec
+ spi_finalize_current_transfer
+ spi_mem_default_supports_op
+ spi_register_controller
+ spi_unregister_controller
+
+# required by ssr_sme.ko
+ rproc_get_by_phandle
+
+# required by superram.ko
+ crypto_register_alg
+ crypto_unregister_alg
+ debugfs_initialized
+ __devm_alloc_percpu
+ devm_iounmap
+ get_random_u64
+ irq_set_irq_type
+ ktime_get_coarse_ts64
+ memcmp
+ param_get_uint
+ param_set_uint
+ pci_ioremap_bar
+ pci_release_regions
+ pci_request_regions
+
+# required by test_clk.ko
+ __clk_get_name
+ of_clk_get_from_provider
+
+# required by time_sync.ko
+ ktime_get_boot_fast_ns
+
+# required by ufs40-zeku.ko
+ async_schedule_node
+ blk_cleanup_queue
+ blk_get_request
+ blk_ksm_get_slot_idx
+ blk_ksm_register
+ blk_ksm_reprogram_all_keys
+ blk_mq_alloc_tag_set
+ blk_mq_free_tag_set
+ blk_mq_init_queue
+ blk_mq_map_queues
+ blk_mq_start_request
+ blk_pm_runtime_init
+ blk_put_request
+ blk_queue_update_dma_alignment
+ blk_queue_update_dma_pad
+ bpf_trace_run5
+ bpf_trace_run6
+ bsg_job_done
+ bsg_remove_queue
+ bsg_setup_queue
+ devfreq_add_device
+ devfreq_resume_device
+ devfreq_suspend_device
+ device_link_add
+ devm_blk_ksm_init
+ dev_pm_opp_add
+ dev_pm_opp_remove
+ down_read_trylock
+ down_write_trylock
+ event_triggers_call
+ irq_set_affinity
+ perf_trace_buf_alloc
+ perf_trace_run_bpf_submit
+ pm_runtime_allow
+ pm_runtime_forbid
+ __scsi_add_device
+ scsi_add_host_with_dma
+ scsi_autopm_get_device
+ scsi_autopm_put_device
+ scsi_block_requests
+ scsi_change_queue_depth
+ scsi_device_put
+ scsi_device_quiesce
+ scsi_dma_map
+ scsi_dma_unmap
+ __scsi_execute
+ scsi_host_alloc
+ scsi_host_put
+ scsi_is_host_device
+ __scsi_iterate_devices
+ scsi_print_sense_hdr
+ scsi_register_driver
+ scsi_remove_device
+ scsi_remove_host
+ scsi_report_bus_reset
+ scsi_scan_host
+ scsi_unblock_requests
+ sdev_prefix_printk
+ sg_copy_from_buffer
+ __sg_page_iter_dma_next
+ sysfs_create_groups
+ sysfs_remove_groups
+ trace_event_buffer_commit
+ trace_event_buffer_reserve
+ trace_event_ignore_this_pid
+ trace_event_printf
+ trace_event_raw_init
+ trace_event_reg
+ trace_handle_return
+ trace_raw_output_prep
+
+# required by vh_dmabuf_heap_flags.ko
+ __traceiter_android_vh_dmabuf_heap_flags_validation
+ __tracepoint_android_vh_dmabuf_heap_flags_validation
+
+# required by vnpu-driver.ko
+ devm_regulator_put
+
+# required by zeku-pci.ko
+ bitmap_find_free_region
+ bitmap_release_region
+ dev_fwnode
+ devm_pci_alloc_host_bridge
+ devm_pci_remap_cfgspace
+ fwnode_property_read_u32_array
+ irq_chip_ack_parent
+ irq_chip_mask_parent
+ irq_chip_unmask_parent
+ irq_domain_get_irq_data
+ irq_domain_set_info
+ irq_domain_update_bus_token
+ irq_set_chained_handler_and_data
+ __irq_set_handler
+ irq_set_handler_data
+ of_pci_get_max_link_speed
+ pcie_capability_clear_and_set_word
+ pcie_capability_read_dword
+ pcie_capability_read_word
+ pcie_link_speed
+ pci_find_ext_capability
+ pci_generic_config_read
+ pci_generic_config_write
+ pci_host_probe
+ pci_msi_create_irq_domain
+ pci_msi_enabled
+ pci_msi_mask_irq
+ pci_msi_unmask_irq
+ pci_rescan_bus
+ pci_stop_and_remove_bus_device
+ pci_write_config_dword
+
+# required by zeku_adc_tm.ko
+ of_get_next_child
+
+# required by zeku_bus_monitor.ko
+ add_timer
+ del_timer
+ mod_timer
+ time64_to_tm
+
+# required by zeku_cam.ko
+ component_bind_all
+ component_master_add_with_match
+ component_master_del
+ component_match_add_release
+ component_unbind_all
+ media_device_cleanup
+ media_device_init
+ __media_device_register
+ media_device_unregister
+ media_entity_pads_init
+ platform_device_register
+ platform_device_register_full
+ v4l2_device_register
+ v4l2_device_register_subdev
+ __v4l2_device_register_subdev_nodes
+ v4l2_device_unregister
+ v4l2_device_unregister_subdev
+ v4l2_fh_open
+ v4l2_fh_release
+ v4l2_subdev_init
+ vb2_fop_mmap
+ vb2_fop_poll
+ vb2_fop_read
+ vb2_ioctl_create_bufs
+ vb2_ioctl_dqbuf
+ vb2_ioctl_expbuf
+ vb2_ioctl_prepare_buf
+ vb2_ioctl_qbuf
+ vb2_ioctl_querybuf
+ vb2_ioctl_reqbufs
+ vb2_ioctl_streamoff
+ video_devdata
+ video_device_alloc
+ video_device_release
+ video_device_release_empty
+ video_ioctl2
+ __video_register_device
+ video_unregister_device
+
+# required by zeku_iomux.ko
+ bgpio_init
+ devm_gpiochip_add_data_with_key
+ devm_kasprintf
+ devm_pinctrl_register
+ gpiochip_get_data
+ handle_bad_irq
+ of_find_node_by_name
+ pinconf_generic_dt_node_to_map
+ pinctrl_dev_get_drvdata
+ pinctrl_utils_free_map
+
+# required by zeku_poweroff.ko
+ pm_power_off
+
+# required by zeku_ras.ko
+ disable_percpu_irq
+ enable_percpu_irq
+ free_percpu_irq
+ read_sanitised_ftr_reg
+ __request_percpu_irq
+
+# required by zeku_rpmsg.ko
+ _copy_from_iter
+ _copy_to_iter
+ ida_alloc_range
+ ida_free
+ iov_iter_revert
+ mutex_lock_interruptible
+ rpmsg_destroy_ept
+ rpmsg_poll
+
+# required by zeku_rpmsg_ns.ko
+ rpmsg_create_channel
+ rpmsg_release_channel
+ rproc_get_by_child
+
+# required by zeku_rpmsg_virtio.ko
+ pfn_is_map_memory
+ register_virtio_driver
+ rpmsg_find_device
+ rpmsg_sendto
+ rpmsg_unregister_device
+ sg_init_table
+ unregister_virtio_driver
+ virtio_check_driver_offered_feature
+ virtqueue_add_inbuf
+ virtqueue_add_outbuf
+ virtqueue_disable_cb
+ virtqueue_enable_cb
+ virtqueue_get_buf
+ virtqueue_get_vring_size
+ virtqueue_kick
+ virtqueue_kick_prepare
+ virtqueue_notify
+
+# required by zeku_thermal.ko
+ kthread_cancel_delayed_work_sync
+ kthread_delayed_work_timer_fn
+ kthread_mod_delayed_work
+ register_pm_notifier
+ sched_setscheduler_nocheck
+ thermal_cdev_update
+ thermal_zone_device_disable
+ thermal_zone_device_enable
+ thermal_zone_of_sensor_register
+ thermal_zone_of_sensor_unregister
+
+# required by zeku_wdt.ko
+ cpu_hotplug_disable
+ cpu_hotplug_enable
+ iomem_resource
+ kobject_del
+ kobject_uevent
+ kstrtoll
+ kthread_bind
+ __release_region
+ __request_region
+
+# required by zk-audio-ipc.ko
+ of_device_uevent_modalias
+
+# required by zk-sc-i2s-driver.ko
+ devm_snd_dmaengine_pcm_register
+ devm_snd_soc_register_component
+
+# required by zk-slc.ko
+ sort
+
+# required by zk-slcpmu.ko
+ hrtimer_forward
+
+# required by zk_clk.ko
+ clk_fixed_factor_ops
+ clk_hw_get_flags
+ clk_hw_get_name
+ clk_hw_get_num_parents
+ clk_hw_get_parent
+ clk_hw_get_parent_by_index
+ clk_hw_get_rate
+ clk_hw_round_rate
+ __clk_mux_determine_rate_closest
+ devm_clk_hw_register
+ devm_of_clk_add_hw_provider
+ divider_determine_rate
+ divider_get_val
+ divider_recalc_rate
+ divider_round_rate_parent
+ of_clk_hw_onecell_get
+
+# required by zk_intc.ko
+ irq_find_matching_fwspec
+ of_irq_find_parent
+
+# required by zk_sbuf.ko
+ memmove
+ of_reserved_mem_device_release
+
+# required by zk_smmu.ko
+ amba_bustype
+ bus_set_iommu
+ device_match_fwnode
+ devm_add_action
+ dmam_free_coherent
+ driver_find_device
+ generic_device_group
+ generic_iommu_put_resv_regions
+ iommu_alloc_resv_region
+ iommu_device_register
+ iommu_device_sysfs_add
+ iommu_device_sysfs_remove
+ iommu_device_unregister
+ iommu_dma_get_resv_regions
+ iommu_fwspec_add_ids
+ iommu_fwspec_free
+ iommu_report_device_fault
+ pci_ats_supported
+ pci_bus_type
+ pci_device_group
+ pci_disable_ats
+ pci_enable_ats
+ platform_get_irq_byname_optional
+ platform_msi_domain_alloc_irqs
+ platform_msi_domain_free_irqs
+ rb_erase
+ rb_insert_color
+
+# required by zram.ko
+ bio_end_io_acct_remapped
+ bio_start_io_acct
+ blk_queue_io_min
+ blk_queue_io_opt
+ blk_queue_logical_block_size
+ blk_queue_max_discard_sectors
+ blk_queue_max_write_zeroes_sectors
+ __cpuhp_state_add_instance
+ __cpuhp_state_remove_instance
+ crypto_has_alg
+ disk_end_io_acct
+ disk_start_io_acct
+ fsync_bdev
+ idr_for_each
+ memparse
+ memset64
+ set_capacity_and_notify
+ __sysfs_match_string
+ zs_compact
+ zs_create_pool
+ zs_destroy_pool
+ zs_free
+ zs_get_total_pages
+ zs_huge_class_size
+ zs_malloc
+ zs_map_object
+ zs_pool_stats
+ zs_unmap_object
+
+# required by zsmalloc.ko
+ alloc_anon_inode
+ __ClearPageMovable
+ dec_zone_page_state
+ inc_zone_page_state
+ init_pseudo
+ iput
+ kern_mount
+ kern_unmount
+ kill_anon_super
+ kmem_cache_alloc
+ kmem_cache_create
+ kmem_cache_destroy
+ kmem_cache_free
+ kstrdup
+ __lock_page
+ page_mapping
+ register_shrinker
+ __SetPageMovable
+ unlock_page
+ unregister_shrinker
diff --git a/arch/arm64/configs/gki_defconfig b/arch/arm64/configs/gki_defconfig
index 15db885..458130d 100644
--- a/arch/arm64/configs/gki_defconfig
+++ b/arch/arm64/configs/gki_defconfig
@@ -329,6 +329,7 @@
CONFIG_DM_UEVENT=y
CONFIG_DM_VERITY=y
CONFIG_DM_VERITY_FEC=y
+CONFIG_DM_BOW=y
CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
CONFIG_WIREGUARD=y
@@ -553,7 +554,7 @@
CONFIG_PM_DEVFREQ_EVENT=y
CONFIG_IIO=y
CONFIG_IIO_BUFFER=y
-CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_TRIGGERED_BUFFER=y
CONFIG_PWM=y
CONFIG_GENERIC_PHY=y
CONFIG_POWERCAP=y
@@ -581,6 +582,7 @@
CONFIG_QFMT_V2=y
CONFIG_FUSE_FS=y
CONFIG_VIRTIO_FS=y
+CONFIG_FUSE_BPF=y
CONFIG_OVERLAY_FS=y
CONFIG_INCREMENTAL_FS=y
CONFIG_MSDOS_FS=y
@@ -593,6 +595,8 @@
CONFIG_PSTORE_PMSG=y
CONFIG_PSTORE_RAM=y
CONFIG_EROFS_FS=y
+CONFIG_EROFS_FS_PCPU_KTHREAD=y
+CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_737=y
CONFIG_NLS_CODEPAGE_775=y
diff --git a/arch/arm64/include/asm/efi.h b/arch/arm64/include/asm/efi.h
index c5d4551..53cbbb9 100644
--- a/arch/arm64/include/asm/efi.h
+++ b/arch/arm64/include/asm/efi.h
@@ -25,7 +25,7 @@
({ \
efi_virtmap_load(); \
__efi_fpsimd_begin(); \
- spin_lock(&efi_rt_lock); \
+ raw_spin_lock(&efi_rt_lock); \
})
#define arch_efi_call_virt(p, f, args...) \
@@ -37,12 +37,12 @@
#define arch_efi_call_virt_teardown() \
({ \
- spin_unlock(&efi_rt_lock); \
+ raw_spin_unlock(&efi_rt_lock); \
__efi_fpsimd_end(); \
efi_virtmap_unload(); \
})
-extern spinlock_t efi_rt_lock;
+extern raw_spinlock_t efi_rt_lock;
efi_status_t __efi_rt_asm_wrapper(void *, const char *, ...);
#define ARCH_EFI_IRQ_FLAGS_MASK (PSR_D_BIT | PSR_A_BIT | PSR_I_BIT | PSR_F_BIT)
diff --git a/arch/arm64/kernel/efi.c b/arch/arm64/kernel/efi.c
index 386bd81..9669f3f 100644
--- a/arch/arm64/kernel/efi.c
+++ b/arch/arm64/kernel/efi.c
@@ -145,7 +145,7 @@
return s;
}
-DEFINE_SPINLOCK(efi_rt_lock);
+DEFINE_RAW_SPINLOCK(efi_rt_lock);
asmlinkage u64 *efi_rt_stack_top __ro_after_init;
diff --git a/arch/arm64/kernel/elfcore.c b/arch/arm64/kernel/elfcore.c
index 98d6744..a4f5ebd 100644
--- a/arch/arm64/kernel/elfcore.c
+++ b/arch/arm64/kernel/elfcore.c
@@ -65,7 +65,6 @@
mte_save_page_tags(page_address(page), tags);
put_page(page);
if (!dump_emit(cprm, tags, MTE_PAGE_TAG_STORAGE)) {
- mte_free_tag_storage(tags);
ret = 0;
break;
}
@@ -77,7 +76,7 @@
return ret;
}
-Elf_Half elf_core_extra_phdrs(void)
+Elf_Half elf_core_extra_phdrs(struct coredump_params *cprm)
{
struct vm_area_struct *vma;
int vma_count = 0;
@@ -112,7 +111,7 @@
return 1;
}
-size_t elf_core_extra_data_size(void)
+size_t elf_core_extra_data_size(struct coredump_params *cprm)
{
struct vm_area_struct *vma;
size_t data_size = 0;
diff --git a/arch/arm64/kvm/hyp/nvhe/mem_protect.c b/arch/arm64/kvm/hyp/nvhe/mem_protect.c
index 5d2ce6e..91e0132 100644
--- a/arch/arm64/kvm/hyp/nvhe/mem_protect.c
+++ b/arch/arm64/kvm/hyp/nvhe/mem_protect.c
@@ -959,7 +959,7 @@
if (!kvm_pte_valid(pte))
return PKVM_NOPAGE;
- return pkvm_getstate(kvm_pgtable_stage2_pte_prot(pte));
+ return pkvm_getstate(kvm_pgtable_hyp_pte_prot(pte));
}
static int __hyp_check_page_state_range(u64 addr, u64 size,
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 768b6c3..f54a729 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -543,6 +543,7 @@
unsigned long addr = untagged_addr(far);
#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
struct vm_area_struct *vma;
+ struct vm_area_struct pvma;
unsigned long seq;
#endif
@@ -626,17 +627,17 @@
count_vm_spf_event(SPF_ABORT_NO_SPECULATE);
goto spf_abort;
}
-
+ pvma = *vma;
if (!mmap_seq_read_check(mm, seq, SPF_ABORT_VMA_COPY)) {
put_vma(vma);
goto spf_abort;
}
- if (!(vma->vm_flags & vm_flags)) {
+ if (!(pvma.vm_flags & vm_flags)) {
put_vma(vma);
count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
goto spf_abort;
}
- fault = do_handle_mm_fault(vma, addr & PAGE_MASK,
+ fault = do_handle_mm_fault(&pvma, addr & PAGE_MASK,
mm_flags | FAULT_FLAG_SPECULATIVE, seq, regs);
put_vma(vma);
diff --git a/arch/ia64/kernel/elfcore.c b/arch/ia64/kernel/elfcore.c
index 9468052..8895df1 100644
--- a/arch/ia64/kernel/elfcore.c
+++ b/arch/ia64/kernel/elfcore.c
@@ -7,7 +7,7 @@
#include <asm/elf.h>
-Elf64_Half elf_core_extra_phdrs(void)
+Elf64_Half elf_core_extra_phdrs(struct coredump_params *cprm)
{
return GATE_EHDR->e_phnum;
}
@@ -60,7 +60,7 @@
return 1;
}
-size_t elf_core_extra_data_size(void)
+size_t elf_core_extra_data_size(struct coredump_params *cprm)
{
const struct elf_phdr *const gate_phdrs =
(const struct elf_phdr *) (GATE_ADDR + GATE_EHDR->e_phoff);
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index 888c12f..fc98393 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -395,6 +395,7 @@
vm_fault_t fault, major = 0;
bool kprobe_fault = kprobe_page_fault(regs, 11);
#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+ struct vm_area_struct pvma;
unsigned long seq;
#endif
@@ -477,25 +478,25 @@
count_vm_spf_event(SPF_ABORT_NO_SPECULATE);
goto spf_abort;
}
-
+ pvma = *vma;
if (!mmap_seq_read_check(mm, seq, SPF_ABORT_VMA_COPY)) {
put_vma(vma);
goto spf_abort;
}
#ifdef CONFIG_PPC_MEM_KEYS
if (unlikely(access_pkey_error(is_write, is_exec,
- (error_code & DSISR_KEYFAULT), vma))) {
+ (error_code & DSISR_KEYFAULT), &pvma))) {
put_vma(vma);
count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
goto spf_abort;
}
#endif /* CONFIG_PPC_MEM_KEYS */
- if (unlikely(access_error(is_write, is_exec, vma))) {
+ if (unlikely(access_error(is_write, is_exec, &pvma))) {
put_vma(vma);
count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
goto spf_abort;
}
- fault = do_handle_mm_fault(vma, address,
+ fault = do_handle_mm_fault(&pvma, address,
flags | FAULT_FLAG_SPECULATIVE, seq, regs);
put_vma(vma);
major |= fault & VM_FAULT_MAJOR;
diff --git a/arch/x86/configs/gki_defconfig b/arch/x86/configs/gki_defconfig
index 1849c0f..4633501 100644
--- a/arch/x86/configs/gki_defconfig
+++ b/arch/x86/configs/gki_defconfig
@@ -39,8 +39,10 @@
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
CONFIG_BOOT_CONFIG=y
+# CONFIG_UID16 is not set
# CONFIG_SYSFS_SYSCALL is not set
# CONFIG_FHANDLE is not set
+# CONFIG_PCSPKR_PLATFORM is not set
CONFIG_KALLSYMS_ALL=y
CONFIG_USERFAULTFD=y
# CONFIG_RSEQ is not set
@@ -58,6 +60,9 @@
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
CONFIG_NR_CPUS=32
# CONFIG_X86_MCE is not set
+# CONFIG_MICROCODE is not set
+# CONFIG_X86_5LEVEL is not set
+# CONFIG_MTRR_SANITIZER is not set
CONFIG_EFI=y
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="stack_depot_disable=on cgroup_disable=pressure"
@@ -65,6 +70,11 @@
CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=0
# CONFIG_PM_WAKELOCKS_GC is not set
+# CONFIG_ACPI_AC is not set
+# CONFIG_ACPI_BATTERY is not set
+# CONFIG_ACPI_FAN is not set
+# CONFIG_ACPI_THERMAL is not set
+# CONFIG_X86_PM_TIMER is not set
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_TIMES=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
@@ -298,6 +308,7 @@
CONFIG_DM_UEVENT=y
CONFIG_DM_VERITY=y
CONFIG_DM_VERITY_FEC=y
+CONFIG_DM_BOW=y
CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
CONFIG_WIREGUARD=y
@@ -354,6 +365,7 @@
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_VIA is not set
# CONFIG_DEVMEM is not set
# CONFIG_DEVPORT is not set
CONFIG_HPET=y
@@ -471,6 +483,7 @@
CONFIG_LEDS_TRIGGER_TRANSIENT=y
CONFIG_EDAC=y
CONFIG_RTC_CLASS=y
+# CONFIG_RTC_HCTOSYS is not set
CONFIG_DMABUF_HEAPS=y
CONFIG_DMABUF_SYSFS_STATS=y
CONFIG_DMABUF_HEAPS_DEFERRED_FREE=y
@@ -487,7 +500,7 @@
CONFIG_PM_DEVFREQ_EVENT=y
CONFIG_IIO=y
CONFIG_IIO_BUFFER=y
-CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_TRIGGERED_BUFFER=y
CONFIG_POWERCAP=y
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
@@ -512,6 +525,7 @@
CONFIG_QFMT_V2=y
CONFIG_FUSE_FS=y
CONFIG_VIRTIO_FS=y
+CONFIG_FUSE_BPF=y
CONFIG_OVERLAY_FS=y
CONFIG_INCREMENTAL_FS=y
CONFIG_MSDOS_FS=y
@@ -525,6 +539,8 @@
CONFIG_PSTORE_PMSG=y
CONFIG_PSTORE_RAM=y
CONFIG_EROFS_FS=y
+CONFIG_EROFS_FS_PCPU_KTHREAD=y
+CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_737=y
CONFIG_NLS_CODEPAGE_775=y
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 83e07cb..b643180 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -1227,6 +1227,7 @@
vm_fault_t fault;
unsigned int flags = FAULT_FLAG_DEFAULT;
#ifdef CONFIG_SPECULATIVE_PAGE_FAULT
+ struct vm_area_struct pvma;
unsigned long seq;
#endif
@@ -1351,17 +1352,17 @@
count_vm_spf_event(SPF_ABORT_NO_SPECULATE);
goto spf_abort;
}
-
+ pvma = *vma;
if (!mmap_seq_read_check(mm, seq, SPF_ABORT_VMA_COPY)) {
put_vma(vma);
goto spf_abort;
}
- if (unlikely(access_error(error_code, vma))) {
+ if (unlikely(access_error(error_code, &pvma))) {
put_vma(vma);
count_vm_spf_event(SPF_ABORT_ACCESS_ERROR);
goto spf_abort;
}
- fault = do_handle_mm_fault(vma, address,
+ fault = do_handle_mm_fault(&pvma, address,
flags | FAULT_FLAG_SPECULATIVE, seq, regs);
put_vma(vma);
diff --git a/arch/x86/um/elfcore.c b/arch/x86/um/elfcore.c
index 48a3eb0..650cdbb 100644
--- a/arch/x86/um/elfcore.c
+++ b/arch/x86/um/elfcore.c
@@ -7,7 +7,7 @@
#include <asm/elf.h>
-Elf32_Half elf_core_extra_phdrs(void)
+Elf32_Half elf_core_extra_phdrs(struct coredump_params *cprm)
{
return vsyscall_ehdr ? (((struct elfhdr *)vsyscall_ehdr)->e_phnum) : 0;
}
@@ -60,7 +60,7 @@
return 1;
}
-size_t elf_core_extra_data_size(void)
+size_t elf_core_extra_data_size(struct coredump_params *cprm)
{
if ( vsyscall_ehdr ) {
const struct elfhdr *const ehdrp =
diff --git a/build.config.gki.aarch64 b/build.config.gki.aarch64
index 21203d8..aa5aa70b 100644
--- a/build.config.gki.aarch64
+++ b/build.config.gki.aarch64
@@ -37,6 +37,8 @@
android/abi_gki_aarch64_amlogic
android/abi_gki_aarch64_sunxi
android/abi_gki_aarch64_pasa
+android/abi_gki_aarch64_zeku
+android/abi_gki_aarch64_lenovo
"
FILES="${FILES}
diff --git a/build.config.gki_kasan b/build.config.gki_kasan
index 1aca62c..2c2be94 100644
--- a/build.config.gki_kasan
+++ b/build.config.gki_kasan
@@ -6,7 +6,7 @@
function update_kasan_config() {
${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \
-e CONFIG_KASAN \
- -e CONFIG_KASAN_INLINE \
+ -e CONFIG_KASAN_PANIC_ON_WARN \
-e CONFIG_KCOV \
-e CONFIG_PANIC_ON_WARN_DEFAULT_ENABLE \
-d CONFIG_RANDOMIZE_BASE \
diff --git a/crypto/testmgr.h b/crypto/testmgr.h
index 2be20a5..652c40d 100644
--- a/crypto/testmgr.h
+++ b/crypto/testmgr.h
@@ -32583,4 +32583,1540 @@
0xae, 0x15, 0x81, 0x15, 0xd0, 0x88, 0xa0, 0x3c, },
}};
+/*
+ * Test vectors generated using https://github.com/google/hctr2
+ */
+static const struct cipher_testvec aes_xctr_tv_template[] = {
+ {
+ .key = "\x9c\x8d\xc4\xbd\x71\x36\xdc\x82"
+ "\x7c\xa1\xca\xa3\x23\x5a\xdb\xa4",
+ .iv = "\x8d\xe7\xa5\x6a\x95\x86\x42\xde"
+ "\xba\xea\x6e\x69\x03\x33\x86\x0f",
+ .ptext = "\xbd",
+ .ctext = "\xb9",
+ .klen = 16,
+ .len = 1,
+ },
+ {
+ .key = "\xbc\x1b\x12\x0c\x3f\x18\xcc\x1f"
+ "\x5a\x1d\xab\x81\xa8\x68\x7c\x63",
+ .iv = "\x22\xc1\xdd\x25\x0b\x18\xcb\xa5"
+ "\x4a\xda\x15\x07\x73\xd9\x88\x10",
+ .ptext = "\x24\x6e\x64\xc6\x15\x26\x9c\xda"
+ "\x2a\x4b\x57\x12\xff\x7c\xd6\xb5",
+ .ctext = "\xd6\x47\x8d\x58\x92\xb2\x84\xf9"
+ "\xb7\xee\x0d\x98\xa1\x39\x4d\x8f",
+ .klen = 16,
+ .len = 16,
+ },
+ {
+ .key = "\x44\x03\xbf\x4c\x30\xf0\xa7\xd6"
+ "\xbd\x54\xbb\x66\x8e\xa6\x0e\x8a",
+ .iv = "\xe6\xf7\x26\xdf\x8c\x3c\xaa\x88"
+ "\xce\xc1\xbd\x43\x3b\x09\x62\xad",
+ .ptext = "\x3c\xe3\x46\xb9\x8f\x9d\x3f\x8d"
+ "\xef\xf2\x53\xab\x24\xe2\x29\x08"
+ "\xf8\x7e\x1d\xa6\x6d\x86\x7d\x60"
+ "\x97\x63\x93\x29\x71\x94\xb4",
+ .ctext = "\xd4\xa3\xc6\xb8\xc1\x6f\x70\x1a"
+ "\x52\x0c\xed\x4c\xaf\x51\x56\x23"
+ "\x48\x45\x07\x10\x34\xc5\xba\x71"
+ "\xe5\xf8\x1e\xd8\xcb\xa6\xe7",
+ .klen = 16,
+ .len = 31,
+ },
+ {
+ .key = "\x5b\x17\x30\x94\x19\x31\xa1\xae"
+ "\x24\x8e\x42\x1e\x82\xe6\xec\xb8",
+ .iv = "\xd1\x2e\xb9\xb8\xf8\x49\xeb\x68"
+ "\x06\xeb\x65\x33\x34\xa2\xeb\xf0",
+ .ptext = "\x19\x75\xec\x59\x60\x1b\x7a\x3e"
+ "\x62\x46\x87\xf0\xde\xab\x81\x36"
+ "\x63\x53\x11\xa0\x1f\xce\x25\x85"
+ "\x49\x6b\x28\xfa\x1c\x92\xe5\x18"
+ "\x38\x14\x00\x79\xf2\x9e\xeb\xfc"
+ "\x36\xa7\x6b\xe1\xe5\xcf\x04\x48"
+ "\x44\x6d\xbd\x64\xb3\xcb\x78\x05"
+ "\x8d\x7f\x9a\xaf\x3c\xcf\x6c\x45"
+ "\x6c\x7c\x46\x4c\xa8\xc0\x1e\xe4"
+ "\x33\xa5\x7b\xbb\x26\xd9\xc0\x32"
+ "\x9d\x8a\xb3\xf3\x3d\x52\xe6\x48"
+ "\x4c\x9b\x4c\x6e\xa4\xa3\xad\x66"
+ "\x56\x48\xd5\x98\x3a\x93\xc4\x85"
+ "\xe9\x89\xca\xa6\xc1\xc8\xe7\xf8"
+ "\xc3\xe9\xef\xbe\x77\xe6\xd1\x3a"
+ "\xa6\x99\xc8\x2d\xdf\x40\x0f\x44",
+ .ctext = "\xc6\x1a\x01\x1a\x00\xba\x04\xff"
+ "\x10\xd1\x7e\x5d\xad\x91\xde\x8c"
+ "\x08\x55\x95\xae\xd7\x22\x77\x40"
+ "\xf0\x33\x1b\x51\xef\xfe\x3d\x67"
+ "\xdf\xc4\x9f\x39\x47\x67\x93\xab"
+ "\xaa\x37\x55\xfe\x41\xe0\xba\xcd"
+ "\x25\x02\x7c\x61\x51\xa1\xcc\x72"
+ "\x7a\x20\x26\xb9\x06\x68\xbd\x19"
+ "\xc5\x2e\x1b\x75\x4a\x40\xb2\xd2"
+ "\xc4\xee\xd8\x5b\xa4\x55\x7d\x25"
+ "\xfc\x01\x4d\x6f\x0a\xfd\x37\x5d"
+ "\x3e\x67\xc0\x35\x72\x53\x7b\xe2"
+ "\xd6\x19\x5b\x92\x6c\x3a\x8c\x2a"
+ "\xe2\xc2\xa2\x4f\x2a\xf2\xb5\x15"
+ "\x65\xc5\x8d\x97\xf9\xbf\x8c\x98"
+ "\xe4\x50\x1a\xf2\x76\x55\x07\x49",
+ .klen = 16,
+ .len = 128,
+ },
+ {
+ .key = "\x17\xa6\x01\x3d\x5d\xd6\xef\x2d"
+ "\x69\x8f\x4c\x54\x5b\xae\x43\xf0",
+ .iv = "\xa9\x1b\x47\x60\x26\x82\xf7\x1c"
+ "\x80\xf8\x88\xdd\xfb\x44\xd9\xda",
+ .ptext = "\xf7\x67\xcd\xa6\x04\x65\x53\x99"
+ "\x90\x5c\xa2\x56\x74\xd7\x9d\xf2"
+ "\x0b\x03\x7f\x4e\xa7\x84\x72\x2b"
+ "\xf0\xa5\xbf\xe6\x9a\x62\x3a\xfe"
+ "\x69\x5c\x93\x79\x23\x86\x64\x85"
+ "\xeb\x13\xb1\x5a\xd5\x48\x39\xa0"
+ "\x70\xfb\x06\x9a\xd7\x12\x5a\xb9"
+ "\xbe\xed\x2c\x81\x64\xf7\xcf\x80"
+ "\xee\xe6\x28\x32\x2d\x37\x4c\x32"
+ "\xf4\x1f\x23\x21\xe9\xc8\xc9\xbf"
+ "\x54\xbc\xcf\xb4\xc2\x65\x39\xdf"
+ "\xa5\xfb\x14\x11\xed\x62\x38\xcf"
+ "\x9b\x58\x11\xdd\xe9\xbd\x37\x57"
+ "\x75\x4c\x9e\xd5\x67\x0a\x48\xc6"
+ "\x0d\x05\x4e\xb1\x06\xd7\xec\x2e"
+ "\x9e\x59\xde\x4f\xab\x38\xbb\xe5"
+ "\x87\x04\x5a\x2c\x2a\xa2\x8f\x3c"
+ "\xe7\xe1\x46\xa9\x49\x9f\x24\xad"
+ "\x2d\xb0\x55\x40\x64\xd5\xda\x7e"
+ "\x1e\x77\xb8\x29\x72\x73\xc3\x84"
+ "\xcd\xf3\x94\x90\x58\x76\xc9\x2c"
+ "\x2a\xad\x56\xde\x33\x18\xb6\x3b"
+ "\x10\xe9\xe9\x8d\xf0\xa9\x7f\x05"
+ "\xf7\xb5\x8c\x13\x7e\x11\x3d\x1e"
+ "\x02\xbb\x5b\xea\x69\xff\x85\xcf"
+ "\x6a\x18\x97\x45\xe3\x96\xba\x4d"
+ "\x2d\x7a\x70\x78\x15\x2c\xe9\xdc"
+ "\x4e\x09\x92\x57\x04\xd8\x0b\xa6"
+ "\x20\x71\x76\x47\x76\x96\x89\xa0"
+ "\xd9\x29\xa2\x5a\x06\xdb\x56\x39"
+ "\x60\x33\x59\x04\x95\x89\xf6\x18"
+ "\x1d\x70\x75\x85\x3a\xb7\x6e",
+ .ctext = "\xe1\xe7\x3f\xd3\x6a\xb9\x2f\x64"
+ "\x37\xc5\xa4\xe9\xca\x0a\xa1\xd6"
+ "\xea\x7d\x39\xe5\xe6\xcc\x80\x54"
+ "\x74\x31\x2a\x04\x33\x79\x8c\x8e"
+ "\x4d\x47\x84\x28\x27\x9b\x3c\x58"
+ "\x54\x58\x20\x4f\x70\x01\x52\x5b"
+ "\xac\x95\x61\x49\x5f\xef\xba\xce"
+ "\xd7\x74\x56\xe7\xbb\xe0\x3c\xd0"
+ "\x7f\xa9\x23\x57\x33\x2a\xf6\xcb"
+ "\xbe\x42\x14\x95\xa8\xf9\x7a\x7e"
+ "\x12\x53\x3a\xe2\x13\xfe\x2d\x89"
+ "\xeb\xac\xd7\xa8\xa5\xf8\x27\xf3"
+ "\x74\x9a\x65\x63\xd1\x98\x3a\x7e"
+ "\x27\x7b\xc0\x20\x00\x4d\xf4\xe5"
+ "\x7b\x69\xa6\xa8\x06\x50\x85\xb6"
+ "\x7f\xac\x7f\xda\x1f\xf5\x37\x56"
+ "\x9b\x2f\xd3\x86\x6b\x70\xbd\x0e"
+ "\x55\x9a\x9d\x4b\x08\xb5\x5b\x7b"
+ "\xd4\x7c\xb4\x71\x49\x92\x4a\x1e"
+ "\xed\x6d\x11\x09\x47\x72\x32\x6a"
+ "\x97\x53\x36\xaf\xf3\x06\x06\x2c"
+ "\x69\xf1\x59\x00\x36\x95\x28\x2a"
+ "\xb6\xcd\x10\x21\x84\x73\x5c\x96"
+ "\x86\x14\x2c\x3d\x02\xdb\x53\x9a"
+ "\x61\xde\xea\x99\x84\x7a\x27\xf6"
+ "\xf7\xc8\x49\x73\x4b\xb8\xeb\xd3"
+ "\x41\x33\xdd\x09\x68\xe2\x64\xb8"
+ "\x5f\x75\x74\x97\x91\x54\xda\xc2"
+ "\x73\x2c\x1e\x5a\x84\x48\x01\x1a"
+ "\x0d\x8b\x0a\xdf\x07\x2e\xee\x77"
+ "\x1d\x17\x41\x7a\xc9\x33\x63\xfa"
+ "\x9f\xc3\x74\x57\x5f\x03\x4c",
+ .klen = 16,
+ .len = 255,
+ },
+ {
+ .key = "\xe5\xf1\x48\x2e\x88\xdb\xc7\x28"
+ "\xa2\x55\x5d\x2f\x90\x02\xdc\xd3"
+ "\xf5\xd3\x9e\x87\xd5\x58\x30\x4a",
+ .iv = "\xa6\x40\x39\xf9\x63\x6c\x2d\xd4"
+ "\x1b\x71\x05\xa4\x88\x86\x11\xd3",
+ .ptext = "\xb6\x06\xae\x15\x11\x96\xc1\x44"
+ "\x44\xc2\x98\xf9\xa8\x0a\x0b",
+ .ctext = "\x27\x3b\x68\x40\xa9\x5e\x74\x6b"
+ "\x74\x67\x18\xf9\x37\xed\xed",
+ .klen = 24,
+ .len = 15,
+ },
+ {
+ .key = "\xc8\xa0\x27\x67\x04\x3f\xed\xa5"
+ "\xb4\x0c\x51\x91\x2d\x27\x77\x33"
+ "\xa5\xfc\x2a\x9f\x78\xd8\x1c\x68",
+ .iv = "\x83\x99\x1a\xe2\x84\xca\xa9\x16"
+ "\x8d\xc4\x2d\x1b\x67\xc8\x86\x21",
+ .ptext = "\xd6\x22\x85\xb8\x5d\x7e\x26\x2e"
+ "\xbe\x04\x9d\x0c\x03\x91\x45\x4a"
+ "\x36",
+ .ctext = "\x0f\x44\xa9\x62\x72\xec\x12\x26"
+ "\x3a\xc6\x83\x26\x62\x5e\xb7\x13"
+ "\x05",
+ .klen = 24,
+ .len = 17,
+ },
+ {
+ .key = "\xc5\x87\x18\x09\x0a\x4e\x66\x3e"
+ "\x50\x90\x19\x93\xc0\x33\xcf\x80"
+ "\x3a\x36\x6b\x6c\x43\xd7\xe4\x93",
+ .iv = "\xdd\x0b\x75\x1f\xee\x2f\xb4\x52"
+ "\x10\x82\x1f\x79\x8a\xa4\x9b\x87",
+ .ptext = "\x56\xf9\x13\xce\x9f\x30\x10\x11"
+ "\x1b\x59\xfd\x39\x5a\x29\xa3\x44"
+ "\x78\x97\x8c\xf6\x99\x6d\x26\xf1"
+ "\x32\x60\x6a\xeb\x04\x47\x29\x4c"
+ "\x7e\x14\xef\x4d\x55\x29\xfe\x36"
+ "\x37\xcf\x0b\x6e\xf3\xce\x15\xd2",
+ .ctext = "\x8f\x98\xe1\x5a\x7f\xfe\xc7\x05"
+ "\x76\xb0\xd5\xde\x90\x52\x2b\xa8"
+ "\xf3\x6e\x3c\x77\xa5\x33\x63\xdd"
+ "\x6f\x62\x12\xb0\x80\x10\xc1\x28"
+ "\x58\xe5\xd6\x24\x44\x04\x55\xf3"
+ "\x6d\x94\xcb\x2c\x7e\x7a\x85\x79",
+ .klen = 24,
+ .len = 48,
+ },
+ {
+ .key = "\x84\x9b\xe8\x10\x4c\xb3\xd1\x7a"
+ "\xb3\xab\x4e\x6f\x90\x12\x07\xf8"
+ "\xef\xde\x42\x09\xbf\x34\x95\xb2",
+ .iv = "\x66\x62\xf9\x48\x9d\x17\xf7\xdf"
+ "\x06\x67\xf4\x6d\xf2\xbc\xa2\xe5",
+ .ptext = "\x2f\xd6\x16\x6b\xf9\x4b\x44\x14"
+ "\x90\x93\xe5\xfd\x05\xaa\x00\x26"
+ "\xbd\xab\x11\xb8\xf0\xcb\x11\x72"
+ "\xdd\xc5\x15\x4f\x4e\x1b\xf8\xc9"
+ "\x8f\x4a\xd5\x69\xf8\x9e\xfb\x05"
+ "\x8a\x37\x46\xfe\xfa\x58\x9b\x0e"
+ "\x72\x90\x9a\x06\xa5\x42\xf4\x7c"
+ "\x35\xd5\x64\x70\x72\x67\xfc\x8b"
+ "\xab\x5a\x2f\x64\x9b\xa1\xec\xe7"
+ "\xe6\x92\x69\xdb\x62\xa4\xe7\x44"
+ "\x88\x28\xd4\x52\x64\x19\xa9\xd7"
+ "\x0c\x00\xe6\xe7\xc1\x28\xc1\xf5"
+ "\x72\xc5\xfa\x09\x22\x2e\xf4\x82"
+ "\xa3\xdc\xc1\x68\xf9\x29\x55\x8d"
+ "\x04\x67\x13\xa6\x52\x04\x3c\x0c"
+ "\x14\xf2\x87\x23\x61\xab\x82\xcb"
+ "\x49\x5b\x6b\xd4\x4f\x0d\xd4\x95"
+ "\x82\xcd\xe3\x69\x47\x1b\x31\x73"
+ "\x73\x77\xc1\x53\x7d\x43\x5e\x4a"
+ "\x80\x3a\xca\x9c\xc7\x04\x1a\x31"
+ "\x8e\xe6\x76\x7f\xe1\xb3\xd0\x57"
+ "\xa2\xb2\xf6\x09\x51\xc9\x6d\xbc"
+ "\x79\xed\x57\x50\x36\xd2\x93\xa4"
+ "\x40\x5d\xac\x3a\x3b\xb6\x2d\x89"
+ "\x78\xa2\xbd\x23\xec\x35\x06\xf0"
+ "\xa8\xc8\xc9\xb0\xe3\x28\x2b\xba"
+ "\x70\xa0\xfe\xed\x13\xc4\xd7\x90"
+ "\xb1\x6a\xe0\xe1\x30\x71\x15\xd0"
+ "\xe2\xb3\xa6\x4e\xb0\x01\xf9\xe7"
+ "\x59\xc6\x1e\xed\x46\x2b\xe3\xa8"
+ "\x22\xeb\x7f\x1c\xd9\xcd\xe0\xa6"
+ "\x72\x42\x2c\x06\x75\xbb\xb7\x6b"
+ "\xca\x49\x5e\xa1\x47\x8d\x9e\xfe"
+ "\x60\xcc\x34\x95\x8e\xfa\x1e\x3e"
+ "\x85\x4b\x03\x54\xea\x34\x1c\x41"
+ "\x90\x45\xa6\xbe\xcf\x58\x4f\xca"
+ "\x2c\x79\xc0\x3e\x8f\xd7\x3b\xd4"
+ "\x55\x74\xa8\xe1\x57\x09\xbf\xab"
+ "\x2c\xf9\xe4\xdd\x17\x99\x57\x60"
+ "\x4b\x88\x2a\x7f\x43\x86\xb9\x9a"
+ "\x60\xbf\x4c\xcf\x9b\x41\xb8\x99"
+ "\x69\x15\x4f\x91\x4d\xeb\xdf\x6f"
+ "\xcc\x4c\xf9\x6f\xf2\x33\x23\xe7"
+ "\x02\x44\xaa\xa2\xfa\xb1\x39\xa5"
+ "\xff\x88\xf5\x37\x02\x33\x24\xfc"
+ "\x79\x11\x4c\x94\xc2\x31\x87\x9c"
+ "\x53\x19\x99\x32\xe4\xde\x18\xf4"
+ "\x8f\xe2\xe8\xa3\xfb\x0b\xaa\x7c"
+ "\xdb\x83\x0f\xf6\xc0\x8a\x9b\xcd"
+ "\x7b\x16\x05\x5b\xe4\xb4\x34\x03"
+ "\xe3\x8f\xc9\x4b\x56\x84\x2a\x4c"
+ "\x36\x72\x3c\x84\x4f\xba\xa2\x7f"
+ "\xf7\x1b\xba\x4d\x8a\xb8\x5d\x51"
+ "\x36\xfb\xef\x23\x18\x6f\x33\x2d"
+ "\xbb\x06\x24\x8e\x33\x98\x6e\xcd"
+ "\x63\x11\x18\x6b\xcc\x1b\x66\xb9"
+ "\x38\x8d\x06\x8d\x98\x1a\xef\xaa"
+ "\x35\x4a\x90\xfa\xb1\xd3\xcc\x11"
+ "\x50\x4c\x54\x18\x60\x5d\xe4\x11"
+ "\xfc\x19\xe1\x53\x20\x5c\xe7\xef"
+ "\x8a\x2b\xa8\x82\x51\x5f\x5d\x43"
+ "\x34\xe5\xcf\x7b\x1b\x6f\x81\x19"
+ "\xb7\xdf\xa8\x9e\x81\x89\x5f\x33"
+ "\x69\xaf\xde\x89\x68\x88\xf0\x71",
+ .ctext = "\xab\x15\x46\x5b\xed\x4f\xa8\xac"
+ "\xbf\x31\x30\x84\x55\xa4\xb8\x98"
+ "\x79\xba\xa0\x15\xa4\x55\x20\xec"
+ "\xf9\x94\x71\xe6\x6a\x6f\xee\x87"
+ "\x2e\x3a\xa2\x95\xae\x6e\x56\x09"
+ "\xe9\xc0\x0f\xe2\xc6\xb7\x30\xa9"
+ "\x73\x8e\x59\x7c\xfd\xe3\x71\xf7"
+ "\xae\x8b\x91\xab\x5e\x36\xe9\xa8"
+ "\xff\x17\xfa\xa2\x94\x93\x11\x42"
+ "\x67\x96\x99\xc5\xf0\xad\x2a\x57"
+ "\xf9\xa6\x70\x4a\xdf\x71\xff\xc0"
+ "\xe2\xaf\x9a\xae\x57\x58\x13\x3b"
+ "\x2d\xf1\xc7\x8f\xdb\x8a\xcc\xce"
+ "\x53\x1a\x69\x55\x39\xc8\xbe\xc3"
+ "\x2d\xb1\x03\xd9\xa3\x99\xf4\x8d"
+ "\xd9\x2d\x27\xae\xa5\xe7\x77\x7f"
+ "\xbb\x88\x84\xea\xfa\x19\x3f\x44"
+ "\x61\x21\x8a\x1f\xbe\xac\x60\xb4"
+ "\xaf\xe9\x00\xab\xef\x3c\x53\x56"
+ "\xcd\x4b\x53\xd8\x9b\xfe\x88\x23"
+ "\x5b\x85\x76\x08\xec\xd1\x6e\x4a"
+ "\x87\xa4\x7d\x29\x4e\x4f\x3f\xc9"
+ "\xa4\xab\x63\xea\xdd\xef\x9f\x79"
+ "\x38\x18\x7d\x90\x90\xf9\x12\x57"
+ "\x1d\x89\xea\xfe\xd4\x47\x45\x32"
+ "\x6a\xf6\xe7\xde\x22\x7e\xee\xc1"
+ "\xbc\x2d\xc3\xbb\xe5\xd4\x13\xac"
+ "\x63\xff\x5b\xb1\x05\x96\xd5\xf3"
+ "\x07\x9a\x62\xb6\x30\xea\x7d\x1e"
+ "\xee\x75\x0a\x1b\xcc\x6e\x4d\xa7"
+ "\xf7\x4d\x74\xd8\x60\x32\x5e\xd0"
+ "\x93\xd7\x19\x90\x4e\x26\xdb\xe4"
+ "\x5e\xd4\xa8\xb9\x76\xba\x56\x91"
+ "\xc4\x75\x04\x1e\xc2\x77\x24\x6f"
+ "\xf9\xe8\x4a\xec\x7f\x86\x95\xb3"
+ "\x5c\x2c\x97\xab\xf0\xf7\x74\x5b"
+ "\x0b\xc2\xda\x42\x40\x34\x16\xed"
+ "\x06\xc1\x25\x53\x17\x0d\x81\x4e"
+ "\xe6\xf2\x0f\x6d\x94\x3c\x90\x7a"
+ "\xae\x20\xe9\x3f\xf8\x18\x67\x6a"
+ "\x49\x1e\x41\xb6\x46\xab\xc8\xa7"
+ "\xcb\x19\x96\xf5\x99\xc0\x66\x3e"
+ "\x77\xcf\x73\x52\x83\x2a\xe2\x48"
+ "\x27\x6c\xeb\xe7\xe7\xc4\xd5\x6a"
+ "\x40\x67\xbc\xbf\x6b\x3c\xf3\xbb"
+ "\x51\x5e\x31\xac\x03\x81\xab\x61"
+ "\xfa\xa5\xa6\x7d\x8b\xc3\x8a\x75"
+ "\x28\x7a\x71\x9c\xac\x8f\x76\xfc"
+ "\xf9\x6c\x5d\x9b\xd7\xf6\x36\x2d"
+ "\x61\xd5\x61\xaa\xdd\x01\xfc\x57"
+ "\x91\x10\xcd\xcd\x6d\x27\x63\x24"
+ "\x67\x46\x7a\xbb\x61\x56\x39\xb1"
+ "\xd6\x79\xfe\x77\xca\xd6\x73\x59"
+ "\x6e\x58\x11\x90\x03\x26\x74\x2a"
+ "\xfa\x52\x12\x47\xfb\x12\xeb\x3e"
+ "\x88\xf0\x52\x6c\xc0\x54\x7a\x88"
+ "\x8c\xe5\xde\x9e\xba\xb9\xf2\xe1"
+ "\x97\x2e\x5c\xbd\xf4\x13\x7e\xf3"
+ "\xc4\xe1\x87\xa5\x35\xfa\x7c\x71"
+ "\x1a\xc9\xf4\xa8\x57\xe2\x5a\x6b"
+ "\x14\xe0\x73\xaf\x56\x6b\xa0\x00"
+ "\x9e\x5f\x64\xac\x00\xfb\xc4\x92"
+ "\xe5\xe2\x8a\xb2\x9e\x75\x49\x85"
+ "\x25\x66\xa5\x1a\xf9\x7d\x1d\x60",
+ .klen = 24,
+ .len = 512,
+ },
+ {
+ .key = "\x05\x60\x3a\x7e\x60\x90\x46\x18"
+ "\x6c\x60\xba\xeb\x12\xd7\xbe\xd1"
+ "\xd3\xf6\x10\x46\x9d\xf1\x0c\xb4"
+ "\x73\xe3\x93\x27\xa8\x2c\x13\xaa",
+ .iv = "\xf5\x96\xd1\xb6\xcb\x44\xd8\xd0"
+ "\x3e\xdb\x92\x80\x08\x94\xcd\xd3",
+ .ptext = "\x78",
+ .ctext = "\xc5",
+ .klen = 32,
+ .len = 1,
+ },
+ {
+ .key = "\x35\xca\x38\xf3\xd9\xd6\x34\xef"
+ "\xcd\xee\xa3\x26\x86\xba\xfb\x45"
+ "\x01\xfa\x52\x67\xff\xc5\x9d\xaa"
+ "\x64\x9a\x05\xbb\x85\x20\xa7\xf2",
+ .iv = "\xe3\xda\xf5\xff\x42\x59\x87\x86"
+ "\xee\x7b\xd6\xb4\x6a\x25\x44\xff",
+ .ptext = "\x44\x67\x1e\x04\x53\xd2\x4b\xd9"
+ "\x96\x33\x07\x54\xe4\x8e\x20",
+ .ctext = "\xcc\x55\x40\x79\x47\x5c\x8b\xa6"
+ "\xca\x7b\x9f\x50\xe3\x21\xea",
+ .klen = 32,
+ .len = 15,
+ },
+ {
+ .key = "\xaf\xd9\x14\x14\xd5\xdb\xc9\xce"
+ "\x76\x5c\x5a\xbf\x43\x05\x29\x24"
+ "\xc4\x13\x68\xcc\xe8\x37\xbd\xb9"
+ "\x41\x20\xf5\x53\x48\xd0\xa2\xd6",
+ .iv = "\xa7\xb4\x00\x08\x79\x10\xae\xf5"
+ "\x02\xbf\x85\xb2\x69\x4c\xc6\x04",
+ .ptext = "\xac\x6a\xa8\x0c\xb0\x84\xbf\x4c"
+ "\xae\x94\x20\x58\x7e\x00\x93\x89",
+ .ctext = "\xd5\xaa\xe2\xe9\x86\x4c\x95\x4e"
+ "\xde\xb6\x15\xcb\xdc\x1f\x13\x38",
+ .klen = 32,
+ .len = 16,
+ },
+ {
+ .key = "\xed\xe3\x8b\xe7\x1c\x17\xbf\x4a"
+ "\x02\xe2\xfc\x76\xac\xf5\x3c\x00"
+ "\x5d\xdc\xfc\x83\xeb\x45\xb4\xcb"
+ "\x59\x62\x60\xec\x69\x9c\x16\x45",
+ .iv = "\xe4\x0e\x2b\x90\xd2\xfa\x94\x2e"
+ "\x10\xe5\x64\x2b\x97\x28\x15\xc7",
+ .ptext = "\xe6\x53\xff\x60\x0e\xc4\x51\xe4"
+ "\x93\x4d\xe5\x55\xc5\xd9\xad\x48"
+ "\x52",
+ .ctext = "\xba\x25\x28\xf5\xcf\x31\x91\x80"
+ "\xda\x2b\x95\x5f\x20\xcb\xfb\x9f"
+ "\xc6",
+ .klen = 32,
+ .len = 17,
+ },
+ {
+ .key = "\x77\x5c\xc0\x73\x9a\x64\x97\x91"
+ "\x2f\xee\xe0\x20\xc2\x04\x59\x2e"
+ "\x97\xd2\xa7\x70\xb3\xb0\x21\x6b"
+ "\x8f\xbf\xb8\x51\xa8\xea\x0f\x62",
+ .iv = "\x31\x8e\x1f\xcd\xfd\x23\xeb\x7f"
+ "\x8a\x1f\x1b\x23\x53\x27\x44\xe5",
+ .ptext = "\xcd\xff\x8c\x9b\x94\x5a\x51\x3f"
+ "\x40\x93\x56\x93\x66\x39\x63\x1f"
+ "\xbf\xe6\xa4\xfa\xbe\x79\x93\x03"
+ "\xf5\x66\x74\x16\xfc\xe4\xce",
+ .ctext = "\x8b\xd3\xc3\xce\x66\xf8\x66\x4c"
+ "\xad\xd6\xf5\x0f\xd8\x99\x5a\x75"
+ "\xa1\x3c\xab\x0b\x21\x36\x57\x72"
+ "\x88\x29\xe9\xea\x4a\x8d\xe9",
+ .klen = 32,
+ .len = 31,
+ },
+ {
+ .key = "\xa1\x2f\x4d\xde\xfe\xa1\xff\xa8"
+ "\x73\xdd\xe3\xe2\x95\xfc\xea\x9c"
+ "\xd0\x80\x42\x0c\xb8\x43\x3e\x99"
+ "\x39\x38\x0a\x8c\xe8\x45\x3a\x7b",
+ .iv = "\x32\xc4\x6f\xb1\x14\x43\xd1\x87"
+ "\xe2\x6f\x5a\x58\x02\x36\x7e\x2a",
+ .ptext = "\x9e\x5c\x1e\xf1\xd6\x7d\x09\x57"
+ "\x18\x48\x55\xda\x7d\x44\xf9\x6d"
+ "\xac\xcd\x59\xbb\x10\xa2\x94\x67"
+ "\xd1\x6f\xfe\x6b\x4a\x11\xe8\x04"
+ "\x09\x26\x4f\x8d\x5d\xa1\x7b\x42"
+ "\xf9\x4b\x66\x76\x38\x12\xfe\xfe",
+ .ctext = "\x42\xbc\xa7\x64\x15\x9a\x04\x71"
+ "\x2c\x5f\x94\xba\x89\x3a\xad\xbc"
+ "\x87\xb3\xf4\x09\x4f\x57\x06\x18"
+ "\xdc\x84\x20\xf7\x64\x85\xca\x3b"
+ "\xab\xe6\x33\x56\x34\x60\x5d\x4b"
+ "\x2e\x16\x13\xd4\x77\xde\x2d\x2b",
+ .klen = 32,
+ .len = 48,
+ },
+ {
+ .key = "\xfb\xf5\xb7\x3d\xa6\x95\x42\xbf"
+ "\xd2\x94\x6c\x74\x0f\xbc\x5a\x28"
+ "\x35\x3c\x51\x58\x84\xfb\x7d\x11"
+ "\x16\x1e\x00\x97\x37\x08\xb7\x16",
+ .iv = "\x9b\x53\x57\x40\xe6\xd9\xa7\x27"
+ "\x78\xd4\x9b\xd2\x29\x1d\x24\xa9",
+ .ptext = "\x8b\x02\x60\x0a\x3e\xb7\x10\x59"
+ "\xc3\xac\xd5\x2a\x75\x81\xf2\xdb"
+ "\x55\xca\x65\x86\x44\xfb\xfe\x91"
+ "\x26\xbb\x45\xb2\x46\x22\x3e\x08"
+ "\xa2\xbf\x46\xcb\x68\x7d\x45\x7b"
+ "\xa1\x6a\x3c\x6e\x25\xeb\xed\x31"
+ "\x7a\x8b\x47\xf9\xde\xec\x3d\x87"
+ "\x09\x20\x2e\xfa\xba\x8b\x9b\xc5"
+ "\x6c\x25\x9c\x9d\x2a\xe8\xab\x90"
+ "\x3f\x86\xee\x61\x13\x21\xd4\xde"
+ "\xe1\x0c\x95\xfc\x5c\x8a\x6e\x0a"
+ "\x73\xcf\x08\x69\x44\x4e\xde\x25"
+ "\xaf\xaa\x56\x04\xc4\xb3\x60\x44"
+ "\x3b\x8b\x3d\xee\xae\x42\x4b\xd2"
+ "\x9a\x6c\xa0\x8e\x52\x06\xb2\xd1"
+ "\x5d\x38\x30\x6d\x27\x9b\x1a\xd8",
+ .ctext = "\xa3\x78\x33\x78\x95\x95\x97\x07"
+ "\x53\xa3\xa1\x5b\x18\x32\x27\xf7"
+ "\x09\x12\x53\x70\x83\xb5\x6a\x9f"
+ "\x26\x6d\x10\x0d\xe0\x1c\xe6\x2b"
+ "\x70\x00\xdc\xa1\x60\xef\x1b\xee"
+ "\xc5\xa5\x51\x17\xae\xcc\xf2\xed"
+ "\xc4\x60\x07\xdf\xd5\x7a\xe9\x90"
+ "\x3c\x9f\x96\x5d\x72\x65\x5d\xef"
+ "\xd0\x94\x32\xc4\x85\x90\x78\xa1"
+ "\x2e\x64\xf6\xee\x8e\x74\x3f\x20"
+ "\x2f\x12\x3b\x3d\xd5\x39\x8e\x5a"
+ "\xf9\x8f\xce\x94\x5d\x82\x18\x66"
+ "\x14\xaf\x4c\xfe\xe0\x91\xc3\x4a"
+ "\x85\xcf\xe7\xe8\xf7\xcb\xf0\x31"
+ "\x88\x7d\xc9\x5b\x71\x9d\x5f\xd2"
+ "\xfa\xed\xa6\x24\xda\xbb\xb1\x84",
+ .klen = 32,
+ .len = 128,
+ },
+ {
+ .key = "\x32\x37\x2b\x8f\x7b\xb1\x23\x79"
+ "\x05\x52\xde\x05\xf1\x68\x3f\x6c"
+ "\xa4\xae\xbc\x21\xc2\xc6\xf0\xbd"
+ "\x0f\x20\xb7\xa4\xc5\x05\x7b\x64",
+ .iv = "\xff\x26\x4e\x67\x48\xdd\xcf\xfe"
+ "\x42\x09\x04\x98\x5f\x1e\xfa\x80",
+ .ptext = "\x99\xdc\x3b\x19\x41\xf9\xff\x6e"
+ "\x76\xb5\x03\xfa\x61\xed\xf8\x44"
+ "\x70\xb9\xf0\x83\x80\x6e\x31\x77"
+ "\x77\xe4\xc7\xb4\x77\x02\xab\x91"
+ "\x82\xc6\xf8\x7c\x46\x61\x03\x69"
+ "\x09\xa0\xf7\x12\xb7\x81\x6c\xa9"
+ "\x10\x5c\xbb\x55\xb3\x44\xed\xb5"
+ "\xa2\x52\x48\x71\x90\x5d\xda\x40"
+ "\x0b\x7f\x4a\x11\x6d\xa7\x3d\x8e"
+ "\x1b\xcd\x9d\x4e\x75\x8b\x7d\x87"
+ "\xe5\x39\x34\x32\x1e\xe6\x8d\x51"
+ "\xd4\x1f\xe3\x1d\x50\xa0\x22\x37"
+ "\x7c\xb0\xd9\xfb\xb6\xb2\x16\xf6"
+ "\x6d\x26\xa0\x4e\x8c\x6a\xe6\xb6"
+ "\xbe\x4c\x7c\xe3\x88\x10\x18\x90"
+ "\x11\x50\x19\x90\xe7\x19\x3f\xd0"
+ "\x31\x15\x0f\x06\x96\xfe\xa7\x7b"
+ "\xc3\x32\x88\x69\xa4\x12\xe3\x64"
+ "\x02\x30\x17\x74\x6c\x88\x7c\x9b"
+ "\xd6\x6d\x75\xdf\x11\x86\x70\x79"
+ "\x48\x7d\x34\x3e\x33\x58\x07\x8b"
+ "\xd2\x50\xac\x35\x15\x45\x05\xb4"
+ "\x4d\x31\x97\x19\x87\x23\x4b\x87"
+ "\x53\xdc\xa9\x19\x78\xf1\xbf\x35"
+ "\x30\x04\x14\xd4\xcf\xb2\x8c\x87"
+ "\x7d\xdb\x69\xc9\xcd\xfe\x40\x3e"
+ "\x8d\x66\x5b\x61\xe5\xf0\x2d\x87"
+ "\x93\x3a\x0c\x2b\x04\x98\x05\xc2"
+ "\x56\x4d\xc4\x6c\xcd\x7a\x98\x7e"
+ "\xe2\x2d\x79\x07\x91\x9f\xdf\x2f"
+ "\x72\xc9\x8f\xcb\x0b\x87\x1b\xb7"
+ "\x04\x86\xcb\x47\xfa\x5d\x03",
+ .ctext = "\x0b\x00\xf7\xf2\xc8\x6a\xba\x9a"
+ "\x0a\x97\x18\x7a\x00\xa0\xdb\xf4"
+ "\x5e\x8e\x4a\xb7\xe0\x51\xf1\x75"
+ "\x17\x8b\xb4\xf1\x56\x11\x05\x9f"
+ "\x2f\x2e\xba\x67\x04\xe1\xb4\xa5"
+ "\xfc\x7c\x8c\xad\xc6\xb9\xd1\x64"
+ "\xca\xbd\x5d\xaf\xdb\x65\x48\x4f"
+ "\x1b\xb3\x94\x5c\x0b\xd0\xee\xcd"
+ "\xb5\x7f\x43\x8a\xd8\x8b\x66\xde"
+ "\xd2\x9c\x13\x65\xa4\x47\xa7\x03"
+ "\xc5\xa1\x46\x8f\x2f\x84\xbc\xef"
+ "\x48\x9d\x9d\xb5\xbd\x43\xff\xd2"
+ "\xd2\x7a\x5a\x13\xbf\xb4\xf6\x05"
+ "\x17\xcd\x01\x12\xf0\x35\x27\x96"
+ "\xf4\xc1\x65\xf7\x69\xef\x64\x1b"
+ "\x6e\x4a\xe8\x77\xce\x83\x01\xb7"
+ "\x60\xe6\x45\x2a\xcd\x41\x4a\xb5"
+ "\x8e\xcc\x45\x93\xf1\xd6\x64\x5f"
+ "\x32\x60\xe4\x29\x4a\x82\x6c\x86"
+ "\x16\xe4\xcc\xdb\x5f\xc8\x11\xa6"
+ "\xfe\x88\xd6\xc3\xe5\x5c\xbb\x67"
+ "\xec\xa5\x7b\xf5\xa8\x4f\x77\x25"
+ "\x5d\x0c\x2a\x99\xf9\xb9\xd1\xae"
+ "\x3c\x83\x2a\x93\x9b\x66\xec\x68"
+ "\x2c\x93\x02\x8a\x8a\x1e\x2f\x50"
+ "\x09\x37\x19\x5c\x2a\x3a\xc2\xcb"
+ "\xcb\x89\x82\x81\xb7\xbb\xef\x73"
+ "\x8b\xc9\xae\x42\x96\xef\x70\xc0"
+ "\x89\xc7\x3e\x6a\x26\xc3\xe4\x39"
+ "\x53\xa9\xcf\x63\x7d\x05\xf3\xff"
+ "\x52\x04\xf6\x7f\x23\x96\xe9\xf7"
+ "\xff\xd6\x50\xa3\x0e\x20\x71",
+ .klen = 32,
+ .len = 255,
+ },
+ {
+ .key = "\x39\x5f\xf4\x9c\x90\x3a\x9a\x25"
+ "\x15\x11\x79\x39\xed\x26\x5e\xf6"
+ "\xda\xcf\x33\x4f\x82\x97\xab\x10"
+ "\xc1\x55\x48\x82\x80\xa8\x02\xb2",
+ .iv = "\x82\x60\xd9\x06\xeb\x40\x99\x76"
+ "\x08\xc5\xa4\x83\x45\xb8\x38\x5a",
+ .ptext = "\xa1\xa8\xac\xac\x08\xaf\x8f\x84"
+ "\xbf\xcc\x79\x31\x5e\x61\x01\xd1"
+ "\x4d\x5f\x9b\xcd\x91\x92\x9a\xa1"
+ "\x99\x0d\x49\xb2\xd7\xfd\x25\x93"
+ "\x51\x96\xbd\x91\x8b\x08\xf1\xc6"
+ "\x0d\x17\xf6\xef\xfd\xd2\x78\x16"
+ "\xc8\x08\x27\x7b\xca\x98\xc6\x12"
+ "\x86\x11\xdb\xd5\x08\x3d\x5a\x2c"
+ "\xcf\x15\x0e\x9b\x42\x78\xeb\x1f"
+ "\x52\xbc\xd7\x5a\x8a\x33\x6c\x14"
+ "\xfc\x61\xad\x2e\x1e\x03\x66\xea"
+ "\x79\x0e\x88\x88\xde\x93\xe3\x81"
+ "\xb5\xc4\x1c\xe6\x9c\x08\x18\x8e"
+ "\xa0\x87\xda\xe6\xf8\xcb\x30\x44"
+ "\x2d\x4e\xc0\xa3\x60\xf9\x62\x7b"
+ "\x4b\xd5\x61\x6d\xe2\x67\x95\x54"
+ "\x10\xd1\xca\x22\xe8\xb6\xb1\x3a"
+ "\x2d\xd7\x35\x5b\x22\x88\x55\x67"
+ "\x3d\x83\x8f\x07\x98\xa8\xf2\xcf"
+ "\x04\xb7\x9e\x52\xca\xe0\x98\x72"
+ "\x5c\xc1\x00\xd4\x1f\x2c\x61\xf3"
+ "\xe8\x40\xaf\x4a\xee\x66\x41\xa0"
+ "\x02\x77\x29\x30\x65\x59\x4b\x20"
+ "\x7b\x0d\x80\x97\x27\x7f\xd5\x90"
+ "\xbb\x9d\x76\x90\xe5\x43\x43\x72"
+ "\xd0\xd4\x14\x75\x66\xb3\xb6\xaf"
+ "\x09\xe4\x23\xb0\x62\xad\x17\x28"
+ "\x39\x26\xab\xf5\xf7\x5c\xb6\x33"
+ "\xbd\x27\x09\x5b\x29\xe4\x40\x0b"
+ "\xc1\x26\x32\xdb\x9a\xdf\xf9\x5a"
+ "\xae\x03\x2c\xa4\x40\x84\x9a\xb7"
+ "\x4e\x47\xa8\x0f\x23\xc7\xbb\xcf"
+ "\x2b\xf2\x32\x6c\x35\x6a\x91\xba"
+ "\x0e\xea\xa2\x8b\x2f\xbd\xb5\xea"
+ "\x6e\xbc\xb5\x4b\x03\xb3\x86\xe0"
+ "\x86\xcf\xba\xcb\x38\x2c\x32\xa6"
+ "\x6d\xe5\x28\xa6\xad\xd2\x7f\x73"
+ "\x43\x14\xf8\xb1\x99\x12\x2d\x2b"
+ "\xdf\xcd\xf2\x81\x43\x94\xdf\xb1"
+ "\x17\xc9\x33\xa6\x3d\xef\x96\xb8"
+ "\xd6\x0d\x00\xec\x49\x66\x85\x5d"
+ "\x44\x62\x12\x04\x55\x5c\x48\xd3"
+ "\xbd\x73\xac\x54\x8f\xbf\x97\x8e"
+ "\x85\xfd\xc2\xa1\x25\x32\x38\x6a"
+ "\x1f\xac\x57\x3c\x4f\x56\x73\xf2"
+ "\x1d\xb6\x48\x68\xc7\x0c\xe7\x60"
+ "\xd2\x8e\x4d\xfb\xc7\x20\x7b\xb7"
+ "\x45\x28\x12\xc6\x26\xae\xea\x7c"
+ "\x5d\xe2\x46\xb5\xae\xe1\xc3\x98"
+ "\x6f\x72\xd5\xa2\xfd\xed\x40\xfd"
+ "\xf9\xdf\x61\xec\x45\x2c\x15\xe0"
+ "\x1e\xbb\xde\x71\x37\x5f\x73\xc2"
+ "\x11\xcc\x6e\x6d\xe1\xb5\x1b\xd2"
+ "\x2a\xdd\x19\x8a\xc2\xe1\xa0\xa4"
+ "\x26\xeb\xb2\x2c\x4f\x77\x52\xf1"
+ "\x42\x72\x6c\xad\xd7\x78\x5d\x72"
+ "\xc9\x16\x26\x25\x1b\x4c\xe6\x58"
+ "\x79\x57\xb5\x06\x15\x4f\xe5\xba"
+ "\xa2\x7f\x2d\x5b\x87\x8a\x44\x70"
+ "\xec\xc7\xef\x84\xae\x60\xa2\x61"
+ "\x86\xe9\x18\xcd\x28\xc4\xa4\xf5"
+ "\xbc\x84\xb8\x86\xa0\xba\xf1\xf1"
+ "\x08\x3b\x32\x75\x35\x22\x7a\x65"
+ "\xca\x48\xe8\xef\x6e\xe2\x8e\x00",
+ .ctext = "\x2f\xae\xd8\x67\xeb\x15\xde\x75"
+ "\x53\xa3\x0e\x5a\xcf\x1c\xbe\xea"
+ "\xde\xf9\xcf\xc2\x9f\xfd\x0f\x44"
+ "\xc0\xe0\x7a\x76\x1d\xcb\x4a\xf8"
+ "\x35\xd6\xe3\x95\x98\x6b\x3f\x89"
+ "\xc4\xe6\xb6\x6f\xe1\x8b\x39\x4b"
+ "\x1c\x6c\x77\xe4\xe1\x8a\xbc\x61"
+ "\x00\x6a\xb1\x37\x2f\x45\xe6\x04"
+ "\x52\x0b\xfc\x1e\x32\xc1\xd8\x9d"
+ "\xfa\xdd\x67\x5c\xe0\x75\x83\xd0"
+ "\x21\x9e\x02\xea\xc0\x7f\xc0\x29"
+ "\xb3\x6c\xa5\x97\xb3\x29\x82\x1a"
+ "\x94\xa5\xb4\xb6\x49\xe5\xa5\xad"
+ "\x95\x40\x52\x7c\x84\x88\xa4\xa8"
+ "\x26\xe4\xd9\x5d\x41\xf2\x93\x7b"
+ "\xa4\x48\x1b\x66\x91\xb9\x7c\xc2"
+ "\x99\x29\xdf\xd8\x30\xac\xd4\x47"
+ "\x42\xa0\x14\x87\x67\xb8\xfd\x0b"
+ "\x1e\xcb\x5e\x5c\x9a\xc2\x04\x8b"
+ "\x17\x29\x9d\x99\x7f\x86\x4c\xe2"
+ "\x5c\x96\xa6\x0f\xb6\x47\x33\x5c"
+ "\xe4\x50\x49\xd5\x4f\x92\x0b\x9a"
+ "\xbc\x52\x4c\x41\xf5\xc9\x3e\x76"
+ "\x55\x55\xd4\xdc\x71\x14\x23\xfc"
+ "\x5f\xd5\x08\xde\xa0\xf7\x28\xc0"
+ "\xe1\x61\xac\x64\x66\xf6\xd1\x31"
+ "\xe4\xa4\xa9\xed\xbc\xad\x4f\x3b"
+ "\x59\xb9\x48\x1b\xe7\xb1\x6f\xc6"
+ "\xba\x40\x1c\x0b\xe7\x2f\x31\x65"
+ "\x85\xf5\xe9\x14\x0a\x31\xf5\xf3"
+ "\xc0\x1c\x20\x35\x73\x38\x0f\x8e"
+ "\x39\xf0\x68\xae\x08\x9c\x87\x4b"
+ "\x42\xfc\x22\x17\xee\x96\x51\x2a"
+ "\xd8\x57\x5a\x35\xea\x72\x74\xfc"
+ "\xb3\x0e\x69\x9a\xe1\x4f\x24\x90"
+ "\xc5\x4b\xe5\xd7\xe3\x82\x2f\xc5"
+ "\x62\x46\x3e\xab\x72\x4e\xe0\xf3"
+ "\x90\x09\x4c\xb2\xe1\xe8\xa0\xf5"
+ "\x46\x40\x2b\x47\x85\x3c\x21\x90"
+ "\x3d\xad\x25\x5a\x36\xdf\xe5\xbc"
+ "\x7e\x80\x4d\x53\x77\xf1\x79\xa6"
+ "\xec\x22\x80\x88\x68\xd6\x2d\x8b"
+ "\x3e\xf7\x52\xc7\x2a\x20\x42\x5c"
+ "\xed\x99\x4f\x32\x80\x00\x7e\x73"
+ "\xd7\x6d\x7f\x7d\x42\x54\x4a\xfe"
+ "\xff\x6f\x61\xca\x2a\xbb\x4f\xeb"
+ "\x4f\xe4\x4e\xaf\x2c\x4f\x82\xcd"
+ "\xa1\xa7\x11\xb3\x34\x33\xcf\x32"
+ "\x63\x0e\x24\x3a\x35\xbe\x06\xd5"
+ "\x17\xcb\x02\x30\x33\x6e\x8c\x49"
+ "\x40\x6e\x34\x8c\x07\xd4\x3e\xe6"
+ "\xaf\x78\x6d\x8c\x10\x5f\x21\x58"
+ "\x49\x26\xc5\xaf\x0d\x7d\xd4\xaf"
+ "\xcd\x5b\xa1\xe3\xf6\x39\x1c\x9b"
+ "\x8e\x00\xa1\xa7\x9e\x17\x4a\xc0"
+ "\x54\x56\x9e\xcf\xcf\x88\x79\x8d"
+ "\x50\xf7\x56\x8e\x0a\x73\x46\x6b"
+ "\xc3\xb9\x9b\x6c\x7d\xc4\xc8\xb6"
+ "\x03\x5f\x30\x62\x7d\xe6\xdb\x15"
+ "\xe1\x39\x02\x8c\xff\xda\xc8\x43"
+ "\xf2\xa9\xbf\x00\xe7\x3a\x61\x89"
+ "\xdf\xb0\xca\x7d\x8c\x8a\x6a\x9f"
+ "\x18\x89\x3d\x39\xac\x36\x6f\x05"
+ "\x1f\xb5\xda\x00\xea\xe1\x51\x21",
+ .klen = 32,
+ .len = 512,
+ },
+
+};
+
+/*
+ * Test vectors generated using https://github.com/google/hctr2
+ *
+ * To ensure compatibility with RFC 8452, some tests were sourced from
+ * https://datatracker.ietf.org/doc/html/rfc8452
+ */
+static const struct hash_testvec polyval_tv_template[] = {
+ { // From RFC 8452
+ .key = "\x31\x07\x28\xd9\x91\x1f\x1f\x38"
+ "\x37\xb2\x43\x16\xc3\xfa\xb9\xa0",
+ .plaintext = "\x65\x78\x61\x6d\x70\x6c\x65\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x48\x65\x6c\x6c\x6f\x20\x77\x6f"
+ "\x72\x6c\x64\x00\x00\x00\x00\x00"
+ "\x38\x00\x00\x00\x00\x00\x00\x00"
+ "\x58\x00\x00\x00\x00\x00\x00\x00",
+ .digest = "\xad\x7f\xcf\x0b\x51\x69\x85\x16"
+ "\x62\x67\x2f\x3c\x5f\x95\x13\x8f",
+ .psize = 48,
+ .ksize = 16,
+ },
+ { // From RFC 8452
+ .key = "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+ "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+ .plaintext = "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00",
+ .digest = "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00",
+ .psize = 16,
+ .ksize = 16,
+ },
+ { // From RFC 8452
+ .key = "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+ "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+ .plaintext = "\x01\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x40\x00\x00\x00\x00\x00\x00\x00",
+ .digest = "\xeb\x93\xb7\x74\x09\x62\xc5\xe4"
+ "\x9d\x2a\x90\xa7\xdc\x5c\xec\x74",
+ .psize = 32,
+ .ksize = 16,
+ },
+ { // From RFC 8452
+ .key = "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+ "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+ .plaintext = "\x01\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x02\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x03\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x80\x01\x00\x00\x00\x00\x00\x00",
+ .digest = "\x81\x38\x87\x46\xbc\x22\xd2\x6b"
+ "\x2a\xbc\x3d\xcb\x15\x75\x42\x22",
+ .psize = 64,
+ .ksize = 16,
+ },
+ { // From RFC 8452
+ .key = "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+ "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+ .plaintext = "\x01\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x02\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x03\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x04\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x02\x00\x00\x00\x00\x00\x00",
+ .digest = "\x1e\x39\xb6\xd3\x34\x4d\x34\x8f"
+ "\x60\x44\xf8\x99\x35\xd1\xcf\x78",
+ .psize = 80,
+ .ksize = 16,
+ },
+ { // From RFC 8452
+ .key = "\xd9\xb3\x60\x27\x96\x94\x94\x1a"
+ "\xc5\xdb\xc6\x98\x7a\xda\x73\x77",
+ .plaintext = "\x01\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x02\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x03\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x04\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x05\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x08\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x02\x00\x00\x00\x00\x00\x00",
+ .digest = "\xff\xcd\x05\xd5\x77\x0f\x34\xad"
+ "\x92\x67\xf0\xa5\x99\x94\xb1\x5a",
+ .psize = 96,
+ .ksize = 16,
+ },
+ { // Random ( 1)
+ .key = "\x90\xcc\xac\xee\xba\xd7\xd4\x68"
+ "\x98\xa6\x79\x70\xdf\x66\x15\x6c",
+ .plaintext = "",
+ .digest = "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00",
+ .psize = 0,
+ .ksize = 16,
+ },
+ { // Random ( 1)
+ .key = "\xc1\x45\x71\xf0\x30\x07\x94\xe7"
+ "\x3a\xdd\xe4\xc6\x19\x2d\x02\xa2",
+ .plaintext = "\xc1\x5d\x47\xc7\x4c\x7c\x5e\x07"
+ "\x85\x14\x8f\x79\xcc\x73\x83\xf7"
+ "\x35\xb8\xcb\x73\x61\xf0\x53\x31"
+ "\xbf\x84\xde\xb6\xde\xaf\xb0\xb8"
+ "\xb7\xd9\x11\x91\x89\xfd\x1e\x4c"
+ "\x84\x4a\x1f\x2a\x87\xa4\xaf\x62"
+ "\x8d\x7d\x58\xf6\x43\x35\xfc\x53"
+ "\x8f\x1a\xf6\x12\xe1\x13\x3f\x66"
+ "\x91\x4b\x13\xd6\x45\xfb\xb0\x7a"
+ "\xe0\x8b\x8e\x99\xf7\x86\x46\x37"
+ "\xd1\x22\x9e\x52\xf3\x3f\xd9\x75"
+ "\x2c\x2c\xc6\xbb\x0e\x08\x14\x29"
+ "\xe8\x50\x2f\xd8\xbe\xf4\xe9\x69"
+ "\x4a\xee\xf7\xae\x15\x65\x35\x1e",
+ .digest = "\x00\x4f\x5d\xe9\x3b\xc0\xd6\x50"
+ "\x3e\x38\x73\x86\xc6\xda\xca\x7f",
+ .psize = 112,
+ .ksize = 16,
+ },
+ { // Random ( 1)
+ .key = "\x37\xbe\x68\x16\x50\xb9\x4e\xb0"
+ "\x47\xde\xe2\xbd\xde\xe4\x48\x09",
+ .plaintext = "\x87\xfc\x68\x9f\xff\xf2\x4a\x1e"
+ "\x82\x3b\x73\x8f\xc1\xb2\x1b\x7a"
+ "\x6c\x4f\x81\xbc\x88\x9b\x6c\xa3"
+ "\x9c\xc2\xa5\xbc\x14\x70\x4c\x9b"
+ "\x0c\x9f\x59\x92\x16\x4b\x91\x3d"
+ "\x18\x55\x22\x68\x12\x8c\x63\xb2"
+ "\x51\xcb\x85\x4b\xd2\xae\x0b\x1c"
+ "\x5d\x28\x9d\x1d\xb1\xc8\xf0\x77"
+ "\xe9\xb5\x07\x4e\x06\xc8\xee\xf8"
+ "\x1b\xed\x72\x2a\x55\x7d\x16\xc9"
+ "\xf2\x54\xe7\xe9\xe0\x44\x5b\x33"
+ "\xb1\x49\xee\xff\x43\xfb\x82\xcd"
+ "\x4a\x70\x78\x81\xa4\x34\x36\xe8"
+ "\x4c\x28\x54\xa6\x6c\xc3\x6b\x78"
+ "\xe7\xc0\x5d\xc6\x5d\x81\xab\x70"
+ "\x08\x86\xa1\xfd\xf4\x77\x55\xfd"
+ "\xa3\xe9\xe2\x1b\xdf\x99\xb7\x80"
+ "\xf9\x0a\x4f\x72\x4a\xd3\xaf\xbb"
+ "\xb3\x3b\xeb\x08\x58\x0f\x79\xce"
+ "\xa5\x99\x05\x12\x34\xd4\xf4\x86"
+ "\x37\x23\x1d\xc8\x49\xc0\x92\xae"
+ "\xa6\xac\x9b\x31\x55\xed\x15\xc6"
+ "\x05\x17\x37\x8d\x90\x42\xe4\x87"
+ "\x89\x62\x88\x69\x1c\x6a\xfd\xe3"
+ "\x00\x2b\x47\x1a\x73\xc1\x51\xc2"
+ "\xc0\x62\x74\x6a\x9e\xb2\xe5\x21"
+ "\xbe\x90\xb5\xb0\x50\xca\x88\x68"
+ "\xe1\x9d\x7a\xdf\x6c\xb7\xb9\x98"
+ "\xee\x28\x62\x61\x8b\xd1\x47\xf9"
+ "\x04\x7a\x0b\x5d\xcd\x2b\x65\xf5"
+ "\x12\xa3\xfe\x1a\xaa\x2c\x78\x42"
+ "\xb8\xbe\x7d\x74\xeb\x59\xba\xba",
+ .digest = "\xae\x11\xd4\x60\x2a\x5f\x9e\x42"
+ "\x89\x04\xc2\x34\x8d\x55\x94\x0a",
+ .psize = 256,
+ .ksize = 16,
+ },
+
+};
+
+/*
+ * Test vectors generated using https://github.com/google/hctr2
+ */
+static const struct cipher_testvec aes_hctr2_tv_template[] = {
+ {
+ .key = "\xe1\x15\x66\x3c\x8d\xc6\x3a\xff"
+ "\xef\x41\xd7\x47\xa2\xcc\x8a\xba",
+ .iv = "\xc3\xbe\x2a\xcb\xb5\x39\x86\xf1"
+ "\x91\xad\x6c\xf4\xde\x74\x45\x63"
+ "\x5c\x7a\xd5\xcc\x8b\x76\xef\x0e"
+ "\xcf\x2c\x60\x69\x37\xfd\x07\x96",
+ .ptext = "\x65\x75\xae\xd3\xe2\xbc\x43\x5c"
+ "\xb3\x1a\xd8\x05\xc3\xd0\x56\x29",
+ .ctext = "\x11\x91\xea\x74\x58\xcc\xd5\xa2"
+ "\xd0\x55\x9e\x3d\xfe\x7f\xc8\xfe",
+ .klen = 16,
+ .len = 16,
+ },
+ {
+ .key = "\xe7\xd1\x77\x48\x76\x0b\xcd\x34"
+ "\x2a\x2d\xe7\x74\xca\x11\x9c\xae",
+ .iv = "\x71\x1c\x49\x62\xd9\x5b\x50\x5e"
+ "\x68\x87\xbc\xf6\x89\xff\xed\x30"
+ "\xe4\xe5\xbd\xb6\x10\x4f\x9f\x66"
+ "\x28\x06\x5a\xf4\x27\x35\xcd\xe5",
+ .ptext = "\x87\x03\x8f\x06\xa8\x61\x54\xda"
+ "\x01\x45\xd4\x01\xef\x4a\x22\xcf"
+ "\x78\x15\x9f\xbd\x64\xbd\x2c\xb9"
+ "\x40\x1d\x72\xae\x53\x63\xa5",
+ .ctext = "\x4e\xa1\x05\x27\xb8\x45\xe4\xa1"
+ "\xbb\x30\xb4\xa6\x12\x74\x63\xd6"
+ "\x17\xc9\xcc\x2f\x18\x64\xe0\x06"
+ "\x0a\xa0\xff\x72\x10\x7b\x22",
+ .klen = 16,
+ .len = 31,
+ },
+ {
+ .key = "\x59\x65\x3b\x1d\x43\x5e\xc0\xae"
+ "\xb8\x9d\x9b\xdd\x22\x03\xbf\xca",
+ .iv = "\xec\x95\xfa\x5a\xcf\x5e\xd2\x93"
+ "\xa3\xb5\xe5\xbe\xf3\x01\x7b\x01"
+ "\xd1\xca\x6c\x06\x82\xf0\xbd\x67"
+ "\xd9\x6c\xa4\xdc\xb4\x38\x0f\x74",
+ .ptext = "\x45\xdf\x75\x87\xbc\x72\xce\x55"
+ "\xc9\xfa\xcb\xfc\x9f\x40\x82\x2b"
+ "\xc6\x4f\x4f\x5b\x8b\x3b\x6d\x67"
+ "\xa6\x93\x62\x89\x8c\x19\xf4\xe3"
+ "\x08\x92\x9c\xc9\x47\x2c\x6e\xd0"
+ "\xa3\x02\x2b\xdb\x2c\xf2\x8d\x46"
+ "\xcd\xb0\x9d\x26\x63\x4c\x40\x6b"
+ "\x79\x43\xe5\xce\x42\xa8\xec\x3b"
+ "\x5b\xd0\xea\xa4\xe6\xdb\x66\x55"
+ "\x7a\x76\xec\xab\x7d\x2a\x2b\xbd"
+ "\xa9\xab\x22\x64\x1a\xa1\xae\x84"
+ "\x86\x79\x67\xe9\xb2\x50\xbe\x12"
+ "\x2f\xb2\x14\xf0\xdb\x71\xd8\xa7"
+ "\x41\x8a\x88\xa0\x6a\x6e\x9d\x2a"
+ "\xfa\x11\x37\x40\x32\x09\x4c\x47"
+ "\x41\x07\x31\x85\x3d\xa8\xf7\x64",
+ .ctext = "\x2d\x4b\x9f\x93\xca\x5a\x48\x26"
+ "\x01\xcc\x54\xe4\x31\x50\x12\xf0"
+ "\x49\xff\x59\x42\x68\xbd\x87\x8f"
+ "\x9e\x62\x96\xcd\xb9\x24\x57\xa4"
+ "\x0b\x7b\xf5\x2e\x0e\xa8\x65\x07"
+ "\xab\x05\xd5\xca\xe7\x9c\x6c\x34"
+ "\x5d\x42\x34\xa4\x62\xe9\x75\x48"
+ "\x3d\x9e\x8f\xfa\x42\xe9\x75\x08"
+ "\x4e\x54\x91\x2b\xbd\x11\x0f\x8e"
+ "\xf0\x82\xf5\x24\xf1\xc4\xfc\xae"
+ "\x42\x54\x7f\xce\x15\xa8\xb2\x33"
+ "\xc0\x86\xb6\x2b\xe8\x44\xce\x1f"
+ "\x68\x57\x66\x94\x6e\xad\xeb\xf3"
+ "\x30\xf8\x11\xbd\x60\x00\xc6\xd5"
+ "\x4c\x81\xf1\x20\x2b\x4a\x5b\x99"
+ "\x79\x3b\xc9\x5c\x74\x23\xe6\x5d",
+ .klen = 16,
+ .len = 128,
+ },
+ {
+ .key = "\x3e\x08\x5d\x64\x6c\x98\xec\xec"
+ "\x70\x0e\x0d\xa1\x41\x20\x99\x82",
+ .iv = "\x11\xb7\x77\x91\x0d\x99\xd9\x8d"
+ "\x35\x3a\xf7\x14\x6b\x09\x37\xe5"
+ "\xad\x51\xf6\xc3\x96\x4b\x64\x56"
+ "\xa8\xbd\x81\xcc\xbe\x94\xaf\xe4",
+ .ptext = "\xff\x8d\xb9\xc0\xe3\x69\xb3\xb2"
+ "\x8b\x11\x26\xb3\x11\xec\xfb\xb9"
+ "\x9c\xc1\x71\xd6\xe3\x26\x0e\xe0"
+ "\x68\x40\x60\xb9\x3a\x63\x56\x8a"
+ "\x9e\xc1\xf0\x10\xb1\x64\x32\x70"
+ "\xf8\xcd\xc6\xc4\x49\x4c\xe1\xce"
+ "\xf3\xe1\x03\xf8\x35\xae\xe0\x5e"
+ "\xef\x5f\xbc\x41\x75\x26\x13\xcc"
+ "\x37\x85\xdf\xc0\x5d\xa6\x47\x98"
+ "\xf1\x97\x52\x58\x04\xe6\xb5\x01"
+ "\xc0\xb8\x17\x6d\x74\xbd\x9a\xdf"
+ "\xa4\x37\x94\x86\xb0\x13\x83\x28"
+ "\xc9\xa2\x07\x3f\xb5\xb2\x72\x40"
+ "\x0e\x60\xdf\x57\x07\xb7\x2c\x66"
+ "\x10\x3f\x8d\xdd\x30\x0a\x47\xd5"
+ "\xe8\x9d\xfb\xa1\xaf\x53\xd7\x05"
+ "\xc7\xd2\xba\xe7\x2c\xa0\xbf\xb8"
+ "\xd1\x93\xe7\x41\x82\xa3\x41\x3a"
+ "\xaf\x12\xd6\xf8\x34\xda\x92\x46"
+ "\xad\xa2\x2f\xf6\x7e\x46\x96\xd8"
+ "\x03\xf3\x49\x64\xde\xd8\x06\x8b"
+ "\xa0\xbc\x63\x35\x38\xb6\x6b\xda"
+ "\x5b\x50\x3f\x13\xa5\x84\x1b\x1b"
+ "\x66\x89\x95\xb7\xc2\x16\x3c\xe9"
+ "\x24\xb0\x8c\x6f\x49\xef\xf7\x28"
+ "\x6a\x24\xfd\xbe\x25\xe2\xb4\x90"
+ "\x77\x44\x08\xb8\xda\xd2\xde\x2c"
+ "\xa0\x57\x45\x57\x29\x47\x6b\x89"
+ "\x4a\xf6\xa7\x2a\xc3\x9e\x7b\xc8"
+ "\xfd\x9f\x89\xab\xee\x6d\xa3\xb4"
+ "\x23\x90\x7a\xe9\x89\xa0\xc7\xb3"
+ "\x17\x41\x87\x91\xfc\x97\x42",
+ .ctext = "\xfc\x9b\x96\x66\xc4\x82\x2a\x4a"
+ "\xb1\x24\xba\xc7\x78\x5f\x79\xc1"
+ "\x57\x2e\x47\x29\x4d\x7b\xd2\x9a"
+ "\xbd\xc6\xc1\x26\x7b\x8e\x3f\x5d"
+ "\xd4\xb4\x9f\x6a\x02\x24\x4a\xad"
+ "\x0c\x00\x1b\xdf\x92\xc5\x8a\xe1"
+ "\x77\x79\xcc\xd5\x20\xbf\x83\xf4"
+ "\x4b\xad\x11\xbf\xdb\x47\x65\x70"
+ "\x43\xf3\x65\xdf\xb7\xdc\xb2\xb9"
+ "\xaa\x3f\xb3\xdf\x79\x69\x0d\xa0"
+ "\x86\x1c\xba\x48\x0b\x01\xc1\x88"
+ "\xdf\x03\xb1\x06\x3c\x1d\x56\xa1"
+ "\x8e\x98\xc1\xa6\x95\xa2\x5b\x72"
+ "\x76\x59\xd2\x26\x25\xcd\xef\x7c"
+ "\xc9\x60\xea\x43\xd1\x12\x8a\x8a"
+ "\x63\x12\x78\xcb\x2f\x88\x1e\x88"
+ "\x78\x59\xde\xba\x4d\x2c\x78\x61"
+ "\x75\x37\x54\xfd\x80\xc7\x5e\x98"
+ "\xcf\x14\x62\x8e\xfb\x72\xee\x4d"
+ "\x9f\xaf\x8b\x09\xe5\x21\x0a\x91"
+ "\x8f\x88\x87\xd5\xb1\x84\xab\x18"
+ "\x08\x57\xed\x72\x35\xa6\x0e\xc6"
+ "\xff\xcb\xfe\x2c\x48\x39\x14\x44"
+ "\xba\x59\x32\x3a\x2d\xc4\x5f\xcb"
+ "\xbe\x68\x8e\x7b\xee\x21\xa4\x32"
+ "\x11\xa0\x99\xfd\x90\xde\x59\x43"
+ "\xeb\xed\xd5\x87\x68\x46\xc6\xde"
+ "\x0b\x07\x17\x59\x6a\xab\xca\x15"
+ "\x65\x02\x01\xb6\x71\x8c\x3b\xaa"
+ "\x18\x3b\x30\xae\x38\x5b\x2c\x74"
+ "\xd4\xee\x4a\xfc\xf7\x1b\x09\xd4"
+ "\xda\x8b\x1d\x5d\x6f\x21\x6c",
+ .klen = 16,
+ .len = 255,
+ },
+ {
+ .key = "\x24\xf6\xe1\x62\xe5\xaf\x99\xda"
+ "\x84\xec\x41\xb0\xa3\x0b\xd5\xa8"
+ "\xa0\x3e\x7b\xa6\xdd\x6c\x8f\xa8",
+ .iv = "\x7f\x80\x24\x62\x32\xdd\xab\x66"
+ "\xf2\x87\x29\x24\xec\xd2\x4b\x9f"
+ "\x0c\x33\x52\xd9\xe0\xcc\x6e\xe4"
+ "\x90\x85\x43\x97\xc4\x62\x14\x33",
+ .ptext = "\xef\x58\xe7\x7f\xa9\xd9\xb8\xd7"
+ "\xa2\x91\x97\x07\x27\x9e\xba\xe8"
+ "\xaa",
+ .ctext = "\xd7\xc3\x81\x91\xf2\x40\x17\x73"
+ "\x3e\x3b\x1c\x2a\x8e\x11\x9c\x17"
+ "\xf1",
+ .klen = 24,
+ .len = 17,
+ },
+ {
+ .key = "\xbf\xaf\xd7\x67\x8c\x47\xcf\x21"
+ "\x8a\xa5\xdd\x32\x25\x47\xbe\x4f"
+ "\xf1\x3a\x0b\xa6\xaa\x2d\xcf\x09",
+ .iv = "\xd9\xe8\xf0\x92\x4e\xfc\x1d\xf2"
+ "\x81\x37\x7c\x8f\xf1\x59\x09\x20"
+ "\xf4\x46\x51\x86\x4f\x54\x8b\x32"
+ "\x58\xd1\x99\x8b\x8c\x03\xeb\x5d",
+ .ptext = "\xcd\x64\x90\xf9\x7c\xe5\x0e\x5a"
+ "\x75\xe7\x8e\x39\x86\xec\x20\x43"
+ "\x8a\x49\x09\x15\x47\xf4\x3c\x89"
+ "\x21\xeb\xcf\x4e\xcf\x91\xb5\x40"
+ "\xcd\xe5\x4d\x5c\x6f\xf2\xd2\x80"
+ "\xfa\xab\xb3\x76\x9f\x7f\x84\x0a",
+ .ctext = "\x44\x98\x64\x15\xb7\x0b\x80\xa3"
+ "\xb9\xca\x23\xff\x3b\x0b\x68\x74"
+ "\xbb\x3e\x20\x19\x9f\x28\x71\x2a"
+ "\x48\x3c\x7c\xe2\xef\xb5\x10\xac"
+ "\x82\x9f\xcd\x08\x8f\x6b\x16\x6f"
+ "\xc3\xbb\x07\xfb\x3c\xb0\x1b\x27",
+ .klen = 24,
+ .len = 48,
+ },
+ {
+ .key = "\xb8\x35\xa2\x5f\x86\xbb\x82\x99"
+ "\x27\xeb\x01\x3f\x92\xaf\x80\x24"
+ "\x4c\x66\xa2\x89\xff\x2e\xa2\x25",
+ .iv = "\x0a\x1d\x96\xd3\xe0\xe8\x0c\x9b"
+ "\x9d\x6f\x21\x97\xc2\x17\xdb\x39"
+ "\x3f\xd8\x64\x48\x80\x04\xee\x43"
+ "\x02\xce\x88\xe2\x81\x81\x5f\x81",
+ .ptext = "\xb8\xf9\x16\x8b\x25\x68\xd0\x9c"
+ "\xd2\x28\xac\xa8\x79\xc2\x30\xc1"
+ "\x31\xde\x1c\x37\x1b\xa2\xb5\xe6"
+ "\xf0\xd0\xf8\x9c\x7f\xc6\x46\x07"
+ "\x5c\xc3\x06\xe4\xf0\x02\xec\xf8"
+ "\x59\x7c\xc2\x5d\xf8\x0c\x21\xae"
+ "\x9e\x82\xb1\x1a\x5f\x78\x44\x15"
+ "\x00\xa7\x2e\x52\xc5\x98\x98\x35"
+ "\x03\xae\xd0\x8e\x07\x57\xe2\x5a"
+ "\x17\xbf\x52\x40\x54\x5b\x74\xe5"
+ "\x2d\x35\xaf\x9e\x37\xf7\x7e\x4a"
+ "\x8c\x9e\xa1\xdc\x40\xb4\x5b\x36"
+ "\xdc\x3a\x68\xe6\xb7\x35\x0b\x8a"
+ "\x90\xec\x74\x8f\x09\x9a\x7f\x02"
+ "\x4d\x03\x46\x35\x62\xb1\xbd\x08"
+ "\x3f\x54\x2a\x10\x0b\xdc\x69\xaf"
+ "\x25\x3a\x0c\x5f\xe0\x51\xe7\x11"
+ "\xb7\x00\xab\xbb\x9a\xb0\xdc\x4d"
+ "\xc3\x7d\x1a\x6e\xd1\x09\x52\xbd"
+ "\x6b\x43\x55\x22\x3a\x78\x14\x7d"
+ "\x79\xfd\x8d\xfc\x9b\x1d\x0f\xa2"
+ "\xc7\xb9\xf8\x87\xd5\x96\x50\x61"
+ "\xa7\x5e\x1e\x57\x97\xe0\xad\x2f"
+ "\x93\xe6\xe8\x83\xec\x85\x26\x5e"
+ "\xd9\x2a\x15\xe0\xe9\x09\x25\xa1"
+ "\x77\x2b\x88\xdc\xa4\xa5\x48\xb6"
+ "\xf7\xcc\xa6\xa9\xba\xf3\x42\x5c"
+ "\x70\x9d\xe9\x29\xc1\xf1\x33\xdd"
+ "\x56\x48\x17\x86\x14\x51\x5c\x10"
+ "\xab\xfd\xd3\x26\x8c\x21\xf5\x93"
+ "\x1b\xeb\x47\x97\x73\xbb\x88\x10"
+ "\xf3\xfe\xf5\xde\xf3\x2e\x05\x46"
+ "\x1c\x0d\xa3\x10\x48\x9c\x71\x16"
+ "\x78\x33\x4d\x0a\x74\x3b\xe9\x34"
+ "\x0b\xa7\x0e\x9e\x61\xe9\xe9\xfd"
+ "\x85\xa0\xcb\x19\xfd\x7c\x33\xe3"
+ "\x0e\xce\xc2\x6f\x9d\xa4\x2d\x77"
+ "\xfd\xad\xee\x5e\x08\x3e\xd7\xf5"
+ "\xfb\xc3\xd7\x93\x96\x08\x96\xca"
+ "\x58\x81\x16\x9b\x98\x0a\xe2\xef"
+ "\x7f\xda\x40\xe4\x1f\x46\x9e\x67"
+ "\x2b\x84\xcb\x42\xc4\xd6\x6a\xcf"
+ "\x2d\xb2\x33\xc0\x56\xb3\x35\x6f"
+ "\x29\x36\x8f\x6a\x5b\xec\xd5\x4f"
+ "\xa0\x70\xff\xb6\x5b\xde\x6a\x93"
+ "\x20\x3c\xe2\x76\x7a\xef\x3c\x79"
+ "\x31\x65\xce\x3a\x0e\xd0\xbe\xa8"
+ "\x21\x95\xc7\x2b\x62\x8e\x67\xdd"
+ "\x20\x79\xe4\xe5\x01\x15\xc0\xec"
+ "\x0f\xd9\x23\xc8\xca\xdf\xd4\x7d"
+ "\x1d\xf8\x64\x4f\x56\xb1\x83\xa7"
+ "\x43\xbe\xfc\xcf\xc2\x8c\x33\xda"
+ "\x36\xd0\x52\xef\x9e\x9e\x88\xf4"
+ "\xa8\x21\x0f\xaa\xee\x8d\xa0\x24"
+ "\x4d\xcb\xb1\x72\x07\xf0\xc2\x06"
+ "\x60\x65\x85\x84\x2c\x60\xcf\x61"
+ "\xe7\x56\x43\x5b\x2b\x50\x74\xfa"
+ "\xdb\x4e\xea\x88\xd4\xb3\x83\x8f"
+ "\x6f\x97\x4b\x57\x7a\x64\x64\xae"
+ "\x0a\x37\x66\xc5\x03\xad\xb5\xf9"
+ "\x08\xb0\x3a\x74\xde\x97\x51\xff"
+ "\x48\x4f\x5c\xa4\xf8\x7a\xb4\x05"
+ "\x27\x70\x52\x86\x1b\x78\xfc\x18"
+ "\x06\x27\xa9\x62\xf7\xda\xd2\x8e",
+ .ctext = "\x3b\xe1\xdb\xb3\xc5\x9a\xde\x69"
+ "\x58\x05\xcc\xeb\x02\x51\x78\x4a"
+ "\xac\x28\xe9\xed\xd1\xc9\x15\x7d"
+ "\x33\x7d\xc1\x47\x12\x41\x11\xf8"
+ "\x4a\x2c\xb7\xa3\x41\xbe\x59\xf7"
+ "\x22\xdb\x2c\xda\x9c\x00\x61\x9b"
+ "\x73\xb3\x0b\x84\x2b\xc1\xf3\x80"
+ "\x84\xeb\x19\x60\x80\x09\xe1\xcd"
+ "\x16\x3a\x20\x23\xc4\x82\x4f\xba"
+ "\x3b\x8e\x55\xd7\xa9\x0b\x75\xd0"
+ "\xda\xce\xd2\xee\x7e\x4b\x7f\x65"
+ "\x4d\x28\xc5\xd3\x15\x2c\x40\x96"
+ "\x52\xd4\x18\x61\x2b\xe7\x83\xec"
+ "\x89\x62\x9c\x4c\x50\xe6\xe2\xbb"
+ "\x25\xa1\x0f\xa7\xb0\xb4\xb2\xde"
+ "\x54\x20\xae\xa3\x56\xa5\x26\x4c"
+ "\xd5\xcc\xe5\xcb\x28\x44\xb1\xef"
+ "\x67\x2e\x93\x6d\x00\x88\x83\x9a"
+ "\xf2\x1c\x48\x38\xec\x1a\x24\x90"
+ "\x73\x0a\xdb\xe8\xce\x95\x7a\x2c"
+ "\x8c\xe9\xb7\x07\x1d\xb3\xa3\x20"
+ "\xbe\xad\x61\x84\xac\xde\x76\xb5"
+ "\xa6\x28\x29\x47\x63\xc4\xfc\x13"
+ "\x3f\x71\xfb\x58\x37\x34\x82\xed"
+ "\x9e\x05\x19\x1f\xc1\x67\xc1\xab"
+ "\xf5\xfd\x7c\xea\xfa\xa4\xf8\x0a"
+ "\xac\x4c\x92\xdf\x65\x73\xd7\xdb"
+ "\xed\x2c\xe0\x84\x5f\x57\x8c\x76"
+ "\x3e\x05\xc0\xc3\x68\x96\x95\x0b"
+ "\x88\x97\xfe\x2e\x99\xd5\xc2\xb9"
+ "\x53\x9f\xf3\x32\x10\x1f\x1f\x5d"
+ "\xdf\x21\x95\x70\x91\xe8\xa1\x3e"
+ "\x19\x3e\xb6\x0b\xa8\xdb\xf8\xd4"
+ "\x54\x27\xb8\xab\x5d\x78\x0c\xe6"
+ "\xb7\x08\xee\xa4\xb6\x6b\xeb\x5a"
+ "\x89\x69\x2b\xbd\xd4\x21\x5b\xbf"
+ "\x79\xbb\x0f\xff\xdb\x23\x9a\xeb"
+ "\x8d\xf2\xc4\x39\xb4\x90\x77\x6f"
+ "\x68\xe2\xb8\xf3\xf1\x65\x4f\xd5"
+ "\x24\x80\x06\xaf\x7c\x8d\x15\x0c"
+ "\xfd\x56\xe5\xe3\x01\xa5\xf7\x1c"
+ "\x31\xd6\xa2\x01\x1e\x59\xf9\xa9"
+ "\x42\xd5\xc2\x34\xda\x25\xde\xc6"
+ "\x5d\x38\xef\xd1\x4c\xc1\xd9\x1b"
+ "\x98\xfd\xcd\x57\x6f\xfd\x46\x91"
+ "\x90\x3d\x52\x2b\x2c\x7d\xcf\x71"
+ "\xcf\xd1\x77\x23\x71\x36\xb1\xce"
+ "\xc7\x5d\xf0\x5b\x44\x3d\x43\x71"
+ "\xac\xb8\xa0\x6a\xea\x89\x5c\xff"
+ "\x81\x73\xd4\x83\xd1\xc9\xe9\xe2"
+ "\xa8\xa6\x0f\x36\xe6\xaa\x57\xd4"
+ "\x27\xd2\xc9\xda\x94\x02\x1f\xfb"
+ "\xe1\xa1\x07\xbe\xe1\x1b\x15\x94"
+ "\x1e\xac\x2f\x57\xbb\x41\x22\xaf"
+ "\x60\x5e\xcc\x66\xcb\x16\x62\xab"
+ "\xb8\x7c\x99\xf4\x84\x93\x0c\xc2"
+ "\xa2\x49\xe4\xfd\x17\x55\xe1\xa6"
+ "\x8d\x5b\xc6\x1b\xc8\xac\xec\x11"
+ "\x33\xcf\xb0\xe8\xc7\x28\x4f\xb2"
+ "\x5c\xa6\xe2\x71\xab\x80\x0a\xa7"
+ "\x5c\x59\x50\x9f\x7a\x32\xb7\xe5"
+ "\x24\x9a\x8e\x25\x21\x2e\xb7\x18"
+ "\xd0\xf2\xe7\x27\x6f\xda\xc1\x00"
+ "\xd9\xa6\x03\x59\xac\x4b\xcb\xba",
+ .klen = 24,
+ .len = 512,
+ },
+ {
+ .key = "\x9e\xeb\xb2\x49\x3c\x1c\xf5\xf4"
+ "\x6a\x99\xc2\xc4\xdf\xb1\xf4\xdd"
+ "\x75\x20\x57\xea\x2c\x4f\xcd\xb2"
+ "\xa5\x3d\x7b\x49\x1e\xab\xfd\x0f",
+ .iv = "\xdf\x63\xd4\xab\xd2\x49\xf3\xd8"
+ "\x33\x81\x37\x60\x7d\xfa\x73\x08"
+ "\xd8\x49\x6d\x80\xe8\x2f\x62\x54"
+ "\xeb\x0e\xa9\x39\x5b\x45\x7f\x8a",
+ .ptext = "\x67\xc9\xf2\x30\x84\x41\x8e\x43"
+ "\xfb\xf3\xb3\x3e\x79\x36\x7f\xe8",
+ .ctext = "\x27\x38\x78\x47\x16\xd9\x71\x35"
+ "\x2e\x7e\xdd\x7e\x43\x3c\xb8\x40",
+ .klen = 32,
+ .len = 16,
+ },
+ {
+ .key = "\x93\xfa\x7e\xe2\x0e\x67\xc4\x39"
+ "\xe7\xca\x47\x95\x68\x9d\x5e\x5a"
+ "\x7c\x26\x19\xab\xc6\xca\x6a\x4c"
+ "\x45\xa6\x96\x42\xae\x6c\xff\xe7",
+ .iv = "\xea\x82\x47\x95\x3b\x22\xa1\x3a"
+ "\x6a\xca\x24\x4c\x50\x7e\x23\xcd"
+ "\x0e\x50\xe5\x41\xb6\x65\x29\xd8"
+ "\x30\x23\x00\xd2\x54\xa7\xd6\x56",
+ .ptext = "\xdb\x1f\x1f\xec\xad\x83\x6e\x5d"
+ "\x19\xa5\xf6\x3b\xb4\x93\x5a\x57"
+ "\x6f",
+ .ctext = "\xf1\x46\x6e\x9d\xb3\x01\xf0\x6b"
+ "\xc2\xac\x57\x88\x48\x6d\x40\x72"
+ "\x68",
+ .klen = 32,
+ .len = 17,
+ },
+ {
+ .key = "\x36\x2b\x57\x97\xf8\x5d\xcd\x99"
+ "\x5f\x1a\x5a\x44\x1d\x92\x0f\x27"
+ "\xcc\x16\xd7\x2b\x85\x63\x99\xd3"
+ "\xba\x96\xa1\xdb\xd2\x60\x68\xda",
+ .iv = "\xef\x58\x69\xb1\x2c\x5e\x9a\x47"
+ "\x24\xc1\xb1\x69\xe1\x12\x93\x8f"
+ "\x43\x3d\x6d\x00\xdb\x5e\xd8\xd9"
+ "\x12\x9a\xfe\xd9\xff\x2d\xaa\xc4",
+ .ptext = "\x5e\xa8\x68\x19\x85\x98\x12\x23"
+ "\x26\x0a\xcc\xdb\x0a\x04\xb9\xdf"
+ "\x4d\xb3\x48\x7b\xb0\xe3\xc8\x19"
+ "\x43\x5a\x46\x06\x94\x2d\xf2",
+ .ctext = "\xdb\xfd\xc8\x03\xd0\xec\xc1\xfe"
+ "\xbd\x64\x37\xb8\x82\x43\x62\x4e"
+ "\x7e\x54\xa3\xe2\x24\xa7\x27\xe8"
+ "\xa4\xd5\xb3\x6c\xb2\x26\xb4",
+ .klen = 32,
+ .len = 31,
+ },
+ {
+ .key = "\x03\x65\x03\x6e\x4d\xe6\xe8\x4e"
+ "\x8b\xbe\x22\x19\x48\x31\xee\xd9"
+ "\xa0\x91\x21\xbe\x62\x89\xde\x78"
+ "\xd9\xb0\x36\xa3\x3c\xce\x43\xd5",
+ .iv = "\xa9\xc3\x4b\xe7\x0f\xfc\x6d\xbf"
+ "\x56\x27\x21\x1c\xfc\xd6\x04\x10"
+ "\x5f\x43\xe2\x30\x35\x29\x6c\x10"
+ "\x90\xf1\xbf\x61\xed\x0f\x8a\x91",
+ .ptext = "\x07\xaa\x02\x26\xb4\x98\x11\x5e"
+ "\x33\x41\x21\x51\x51\x63\x2c\x72"
+ "\x00\xab\x32\xa7\x1c\xc8\x3c\x9c"
+ "\x25\x0e\x8b\x9a\xdf\x85\xed\x2d"
+ "\xf4\xf2\xbc\x55\xca\x92\x6d\x22"
+ "\xfd\x22\x3b\x42\x4c\x0b\x74\xec",
+ .ctext = "\x7b\xb1\x43\x6d\xd8\x72\x6c\xf6"
+ "\x67\x6a\x00\xc4\xf1\xf0\xf5\xa4"
+ "\xfc\x60\x91\xab\x46\x0b\x15\xfc"
+ "\xd7\xc1\x28\x15\xa1\xfc\xf7\x68"
+ "\x8e\xcc\x27\x62\x00\x64\x56\x72"
+ "\xa6\x17\xd7\x3f\x67\x80\x10\x58",
+ .klen = 32,
+ .len = 48,
+ },
+ {
+ .key = "\xa5\x28\x24\x34\x1a\x3c\xd8\xf7"
+ "\x05\x91\x8f\xee\x85\x1f\x35\x7f"
+ "\x80\x3d\xfc\x9b\x94\xf6\xfc\x9e"
+ "\x19\x09\x00\xa9\x04\x31\x4f\x11",
+ .iv = "\xa1\xba\x49\x95\xff\x34\x6d\xb8"
+ "\xcd\x87\x5d\x5e\xfd\xea\x85\xdb"
+ "\x8a\x7b\x5e\xb2\x5d\x57\xdd\x62"
+ "\xac\xa9\x8c\x41\x42\x94\x75\xb7",
+ .ptext = "\x69\xb4\xe8\x8c\x37\xe8\x67\x82"
+ "\xf1\xec\x5d\x04\xe5\x14\x91\x13"
+ "\xdf\xf2\x87\x1b\x69\x81\x1d\x71"
+ "\x70\x9e\x9c\x3b\xde\x49\x70\x11"
+ "\xa0\xa3\xdb\x0d\x54\x4f\x66\x69"
+ "\xd7\xdb\x80\xa7\x70\x92\x68\xce"
+ "\x81\x04\x2c\xc6\xab\xae\xe5\x60"
+ "\x15\xe9\x6f\xef\xaa\x8f\xa7\xa7"
+ "\x63\x8f\xf2\xf0\x77\xf1\xa8\xea"
+ "\xe1\xb7\x1f\x9e\xab\x9e\x4b\x3f"
+ "\x07\x87\x5b\x6f\xcd\xa8\xaf\xb9"
+ "\xfa\x70\x0b\x52\xb8\xa8\xa7\x9e"
+ "\x07\x5f\xa6\x0e\xb3\x9b\x79\x13"
+ "\x79\xc3\x3e\x8d\x1c\x2c\x68\xc8"
+ "\x51\x1d\x3c\x7b\x7d\x79\x77\x2a"
+ "\x56\x65\xc5\x54\x23\x28\xb0\x03",
+ .ctext = "\xeb\xf9\x98\x86\x3c\x40\x9f\x16"
+ "\x84\x01\xf9\x06\x0f\xeb\x3c\xa9"
+ "\x4c\xa4\x8e\x5d\xc3\x8d\xe5\xd3"
+ "\xae\xa6\xe6\xcc\xd6\x2d\x37\x4f"
+ "\x99\xc8\xa3\x21\x46\xb8\x69\xf2"
+ "\xe3\x14\x89\xd7\xb9\xf5\x9e\x4e"
+ "\x07\x93\x6f\x78\x8e\x6b\xea\x8f"
+ "\xfb\x43\xb8\x3e\x9b\x4c\x1d\x7e"
+ "\x20\x9a\xc5\x87\xee\xaf\xf6\xf9"
+ "\x46\xc5\x18\x8a\xe8\x69\xe7\x96"
+ "\x52\x55\x5f\x00\x1e\x1a\xdc\xcc"
+ "\x13\xa5\xee\xff\x4b\x27\xca\xdc"
+ "\x10\xa6\x48\x76\x98\x43\x94\xa3"
+ "\xc7\xe2\xc9\x65\x9b\x08\x14\x26"
+ "\x1d\x68\xfb\x15\x0a\x33\x49\x84"
+ "\x84\x33\x5a\x1b\x24\x46\x31\x92",
+ .klen = 32,
+ .len = 128,
+ },
+ {
+ .key = "\x36\x45\x11\xa2\x98\x5f\x96\x7c"
+ "\xc6\xb4\x94\x31\x0a\x67\x09\x32"
+ "\x6c\x6f\x6f\x00\xf0\x17\xcb\xac"
+ "\xa5\xa9\x47\x9e\x2e\x85\x2f\xfa",
+ .iv = "\x28\x88\xaa\x9b\x59\x3b\x1e\x97"
+ "\x82\xe5\x5c\x9e\x6d\x14\x11\x19"
+ "\x6e\x38\x8f\xd5\x40\x2b\xca\xf9"
+ "\x7b\x4c\xe4\xa3\xd0\xd2\x8a\x13",
+ .ptext = "\x95\xd2\xf7\x71\x1b\xca\xa5\x86"
+ "\xd9\x48\x01\x93\x2f\x79\x55\x29"
+ "\x71\x13\x15\x0e\xe6\x12\xbc\x4d"
+ "\x8a\x31\xe3\x40\x2a\xc6\x5e\x0d"
+ "\x68\xbb\x4a\x62\x8d\xc7\x45\x77"
+ "\xd2\xb8\xc7\x1d\xf1\xd2\x5d\x97"
+ "\xcf\xac\x52\xe5\x32\x77\xb6\xda"
+ "\x30\x85\xcf\x2b\x98\xe9\xaa\x34"
+ "\x62\xb5\x23\x9e\xb7\xa6\xd4\xe0"
+ "\xb4\x58\x18\x8c\x4d\xde\x4d\x01"
+ "\x83\x89\x24\xca\xfb\x11\xd4\x82"
+ "\x30\x7a\x81\x35\xa0\xb4\xd4\xb6"
+ "\x84\xea\x47\x91\x8c\x19\x86\x25"
+ "\xa6\x06\x8d\x78\xe6\xed\x87\xeb"
+ "\xda\xea\x73\x7c\xbf\x66\xb8\x72"
+ "\xe3\x0a\xb8\x0c\xcb\x1a\x73\xf1"
+ "\xa7\xca\x0a\xde\x57\x2b\xbd\x2b"
+ "\xeb\x8b\x24\x38\x22\xd3\x0e\x1f"
+ "\x17\xa0\x84\x98\x31\x77\xfd\x34"
+ "\x6a\x4e\x3d\x84\x4c\x0e\xfb\xed"
+ "\xc8\x2a\x51\xfa\xd8\x73\x21\x8a"
+ "\xdb\xb5\xfe\x1f\xee\xc4\xe8\x65"
+ "\x54\x84\xdd\x96\x6d\xfd\xd3\x31"
+ "\x77\x36\x52\x6b\x80\x4f\x9e\xb4"
+ "\xa2\x55\xbf\x66\x41\x49\x4e\x87"
+ "\xa7\x0c\xca\xe7\xa5\xc5\xf6\x6f"
+ "\x27\x56\xe2\x48\x22\xdd\x5f\x59"
+ "\x3c\xf1\x9f\x83\xe5\x2d\xfb\x71"
+ "\xad\xd1\xae\x1b\x20\x5c\x47\xb7"
+ "\x3b\xd3\x14\xce\x81\x42\xb1\x0a"
+ "\xf0\x49\xfa\xc2\xe7\x86\xbf\xcd"
+ "\xb0\x95\x9f\x8f\x79\x41\x54",
+ .ctext = "\xf6\x57\x51\xc4\x25\x61\x2d\xfa"
+ "\xd6\xd9\x3f\x9a\x81\x51\xdd\x8e"
+ "\x3d\xe7\xaa\x2d\xb1\xda\xc8\xa6"
+ "\x9d\xaa\x3c\xab\x62\xf2\x80\xc3"
+ "\x2c\xe7\x58\x72\x1d\x44\xc5\x28"
+ "\x7f\xb4\xf9\xbc\x9c\xb2\xab\x8e"
+ "\xfa\xd1\x4d\x72\xd9\x79\xf5\xa0"
+ "\x24\x3e\x90\x25\x31\x14\x38\x45"
+ "\x59\xc8\xf6\xe2\xc6\xf6\xc1\xa7"
+ "\xb2\xf8\xa7\xa9\x2b\x6f\x12\x3a"
+ "\xb0\x81\xa4\x08\x57\x59\xb1\x56"
+ "\x4c\x8f\x18\x55\x33\x5f\xd6\x6a"
+ "\xc6\xa0\x4b\xd6\x6b\x64\x3e\x9e"
+ "\xfd\x66\x16\xe2\xdb\xeb\x5f\xb3"
+ "\x50\x50\x3e\xde\x8d\x72\x76\x01"
+ "\xbe\xcc\xc9\x52\x09\x2d\x8d\xe7"
+ "\xd6\xc3\x66\xdb\x36\x08\xd1\x77"
+ "\xc8\x73\x46\x26\x24\x29\xbf\x68"
+ "\x2d\x2a\x99\x43\x56\x55\xe4\x93"
+ "\xaf\xae\x4d\xe7\x55\x4a\xc0\x45"
+ "\x26\xeb\x3b\x12\x90\x7c\xdc\xd1"
+ "\xd5\x6f\x0a\xd0\xa9\xd7\x4b\x89"
+ "\x0b\x07\xd8\x86\xad\xa1\xc4\x69"
+ "\x1f\x5e\x8b\xc4\x9e\x91\x41\x25"
+ "\x56\x98\x69\x78\x3a\x9e\xae\x91"
+ "\xd8\xd9\xfa\xfb\xff\x81\x25\x09"
+ "\xfc\xed\x2d\x87\xbc\x04\x62\x97"
+ "\x35\xe1\x26\xc2\x46\x1c\xcf\xd7"
+ "\x14\xed\x02\x09\xa5\xb2\xb6\xaa"
+ "\x27\x4e\x61\xb3\x71\x6b\x47\x16"
+ "\xb7\xe8\xd4\xaf\x52\xeb\x6a\x6b"
+ "\xdb\x4c\x65\x21\x9e\x1c\x36",
+ .klen = 32,
+ .len = 255,
+ },
+ {
+ .key = "\xd3\x81\x72\x18\x23\xff\x6f\x4a"
+ "\x25\x74\x29\x0d\x51\x8a\x0e\x13"
+ "\xc1\x53\x5d\x30\x8d\xee\x75\x0d"
+ "\x14\xd6\x69\xc9\x15\xa9\x0c\x60",
+ .iv = "\x65\x9b\xd4\xa8\x7d\x29\x1d\xf4"
+ "\xc4\xd6\x9b\x6a\x28\xab\x64\xe2"
+ "\x62\x81\x97\xc5\x81\xaa\xf9\x44"
+ "\xc1\x72\x59\x82\xaf\x16\xc8\x2c",
+ .ptext = "\xc7\x6b\x52\x6a\x10\xf0\xcc\x09"
+ "\xc1\x12\x1d\x6d\x21\xa6\x78\xf5"
+ "\x05\xa3\x69\x60\x91\x36\x98\x57"
+ "\xba\x0c\x14\xcc\xf3\x2d\x73\x03"
+ "\xc6\xb2\x5f\xc8\x16\x27\x37\x5d"
+ "\xd0\x0b\x87\xb2\x50\x94\x7b\x58"
+ "\x04\xf4\xe0\x7f\x6e\x57\x8e\xc9"
+ "\x41\x84\xc1\xb1\x7e\x4b\x91\x12"
+ "\x3a\x8b\x5d\x50\x82\x7b\xcb\xd9"
+ "\x9a\xd9\x4e\x18\x06\x23\x9e\xd4"
+ "\xa5\x20\x98\xef\xb5\xda\xe5\xc0"
+ "\x8a\x6a\x83\x77\x15\x84\x1e\xae"
+ "\x78\x94\x9d\xdf\xb7\xd1\xea\x67"
+ "\xaa\xb0\x14\x15\xfa\x67\x21\x84"
+ "\xd3\x41\x2a\xce\xba\x4b\x4a\xe8"
+ "\x95\x62\xa9\x55\xf0\x80\xad\xbd"
+ "\xab\xaf\xdd\x4f\xa5\x7c\x13\x36"
+ "\xed\x5e\x4f\x72\xad\x4b\xf1\xd0"
+ "\x88\x4e\xec\x2c\x88\x10\x5e\xea"
+ "\x12\xc0\x16\x01\x29\xa3\xa0\x55"
+ "\xaa\x68\xf3\xe9\x9d\x3b\x0d\x3b"
+ "\x6d\xec\xf8\xa0\x2d\xf0\x90\x8d"
+ "\x1c\xe2\x88\xd4\x24\x71\xf9\xb3"
+ "\xc1\x9f\xc5\xd6\x76\x70\xc5\x2e"
+ "\x9c\xac\xdb\x90\xbd\x83\x72\xba"
+ "\x6e\xb5\xa5\x53\x83\xa9\xa5\xbf"
+ "\x7d\x06\x0e\x3c\x2a\xd2\x04\xb5"
+ "\x1e\x19\x38\x09\x16\xd2\x82\x1f"
+ "\x75\x18\x56\xb8\x96\x0b\xa6\xf9"
+ "\xcf\x62\xd9\x32\x5d\xa9\xd7\x1d"
+ "\xec\xe4\xdf\x1b\xbe\xf1\x36\xee"
+ "\xe3\x7b\xb5\x2f\xee\xf8\x53\x3d"
+ "\x6a\xb7\x70\xa9\xfc\x9c\x57\x25"
+ "\xf2\x89\x10\xd3\xb8\xa8\x8c\x30"
+ "\xae\x23\x4f\x0e\x13\x66\x4f\xe1"
+ "\xb6\xc0\xe4\xf8\xef\x93\xbd\x6e"
+ "\x15\x85\x6b\xe3\x60\x81\x1d\x68"
+ "\xd7\x31\x87\x89\x09\xab\xd5\x96"
+ "\x1d\xf3\x6d\x67\x80\xca\x07\x31"
+ "\x5d\xa7\xe4\xfb\x3e\xf2\x9b\x33"
+ "\x52\x18\xc8\x30\xfe\x2d\xca\x1e"
+ "\x79\x92\x7a\x60\x5c\xb6\x58\x87"
+ "\xa4\x36\xa2\x67\x92\x8b\xa4\xb7"
+ "\xf1\x86\xdf\xdc\xc0\x7e\x8f\x63"
+ "\xd2\xa2\xdc\x78\xeb\x4f\xd8\x96"
+ "\x47\xca\xb8\x91\xf9\xf7\x94\x21"
+ "\x5f\x9a\x9f\x5b\xb8\x40\x41\x4b"
+ "\x66\x69\x6a\x72\xd0\xcb\x70\xb7"
+ "\x93\xb5\x37\x96\x05\x37\x4f\xe5"
+ "\x8c\xa7\x5a\x4e\x8b\xb7\x84\xea"
+ "\xc7\xfc\x19\x6e\x1f\x5a\xa1\xac"
+ "\x18\x7d\x52\x3b\xb3\x34\x62\x99"
+ "\xe4\x9e\x31\x04\x3f\xc0\x8d\x84"
+ "\x17\x7c\x25\x48\x52\x67\x11\x27"
+ "\x67\xbb\x5a\x85\xca\x56\xb2\x5c"
+ "\xe6\xec\xd5\x96\x3d\x15\xfc\xfb"
+ "\x22\x25\xf4\x13\xe5\x93\x4b\x9a"
+ "\x77\xf1\x52\x18\xfa\x16\x5e\x49"
+ "\x03\x45\xa8\x08\xfa\xb3\x41\x92"
+ "\x79\x50\x33\xca\xd0\xd7\x42\x55"
+ "\xc3\x9a\x0c\x4e\xd9\xa4\x3c\x86"
+ "\x80\x9f\x53\xd1\xa4\x2e\xd1\xbc"
+ "\xf1\x54\x6e\x93\xa4\x65\x99\x8e"
+ "\xdf\x29\xc0\x64\x63\x07\xbb\xea",
+ .ctext = "\x9f\x72\x87\xc7\x17\xfb\x20\x15"
+ "\x65\xb3\x55\xa8\x1c\x8e\x52\x32"
+ "\xb1\x82\x8d\xbf\xb5\x9f\x10\x0a"
+ "\xe8\x0c\x70\x62\xef\x89\xb6\x1f"
+ "\x73\xcc\xe4\xcc\x7a\x3a\x75\x4a"
+ "\x26\xe7\xf5\xd7\x7b\x17\x39\x2d"
+ "\xd2\x27\x6e\xf9\x2f\x9e\xe2\xf6"
+ "\xfa\x16\xc2\xf2\x49\x26\xa7\x5b"
+ "\xe7\xca\x25\x0e\x45\xa0\x34\xc2"
+ "\x9a\x37\x79\x7e\x7c\x58\x18\x94"
+ "\x10\xa8\x7c\x48\xa9\xd7\x63\x89"
+ "\x9e\x61\x4d\x26\x34\xd9\xf0\xb1"
+ "\x2d\x17\x2c\x6f\x7c\x35\x0e\xbe"
+ "\x77\x71\x7c\x17\x5b\xab\x70\xdb"
+ "\x2f\x54\x0f\xa9\xc8\xf4\xf5\xab"
+ "\x52\x04\x3a\xb8\x03\xa7\xfd\x57"
+ "\x45\x5e\xbc\x77\xe1\xee\x79\x8c"
+ "\x58\x7b\x1f\xf7\x75\xde\x68\x17"
+ "\x98\x85\x8a\x18\x5c\xd2\x39\x78"
+ "\x7a\x6f\x26\x6e\xe1\x13\x91\xdd"
+ "\xdf\x0e\x6e\x67\xcc\x51\x53\xd8"
+ "\x17\x5e\xce\xa7\xe4\xaf\xfa\xf3"
+ "\x4f\x9f\x01\x9b\x04\xe7\xfc\xf9"
+ "\x6a\xdc\x1d\x0c\x9a\xaa\x3a\x7a"
+ "\x73\x03\xdf\xbf\x3b\x82\xbe\xb0"
+ "\xb4\xa4\xcf\x07\xd7\xde\x71\x25"
+ "\xc5\x10\xee\x0a\x15\x96\x8b\x4f"
+ "\xfe\xb8\x28\xbd\x4a\xcd\xeb\x9f"
+ "\x5d\x00\xc1\xee\xe8\x16\x44\xec"
+ "\xe9\x7b\xd6\x85\x17\x29\xcf\x58"
+ "\x20\xab\xf7\xce\x6b\xe7\x71\x7d"
+ "\x4f\xa8\xb0\xe9\x7d\x70\xd6\x0b"
+ "\x2e\x20\xb1\x1a\x63\x37\xaa\x2c"
+ "\x94\xee\xd5\xf6\x58\x2a\xf4\x7a"
+ "\x4c\xba\xf5\xe9\x3c\x6f\x95\x13"
+ "\x5f\x96\x81\x5b\xb5\x62\xf2\xd7"
+ "\x8d\xbe\xa1\x31\x51\xe6\xfe\xc9"
+ "\x07\x7d\x0f\x00\x3a\x66\x8c\x4b"
+ "\x94\xaa\xe5\x56\xde\xcd\x74\xa7"
+ "\x48\x67\x6f\xed\xc9\x6a\xef\xaf"
+ "\x9a\xb7\xae\x60\xfa\xc0\x37\x39"
+ "\xa5\x25\xe5\x22\xea\x82\x55\x68"
+ "\x3e\x30\xc3\x5a\xb6\x29\x73\x7a"
+ "\xb6\xfb\x34\xee\x51\x7c\x54\xe5"
+ "\x01\x4d\x72\x25\x32\x4a\xa3\x68"
+ "\x80\x9a\x89\xc5\x11\x66\x4c\x8c"
+ "\x44\x50\xbe\xd7\xa0\xee\xa6\xbb"
+ "\x92\x0c\xe6\xd7\x83\x51\xb1\x69"
+ "\x63\x40\xf3\xf4\x92\x84\xc4\x38"
+ "\x29\xfb\xb4\x84\xa0\x19\x75\x16"
+ "\x60\xbf\x0a\x9c\x89\xee\xad\xb4"
+ "\x43\xf9\x71\x39\x45\x7c\x24\x83"
+ "\x30\xbb\xee\x28\xb0\x86\x7b\xec"
+ "\x93\xc1\xbf\xb9\x97\x1b\x96\xef"
+ "\xee\x58\x35\x61\x12\x19\xda\x25"
+ "\x77\xe5\x80\x1a\x31\x27\x9b\xe4"
+ "\xda\x8b\x7e\x51\x4d\xcb\x01\x19"
+ "\x4f\xdc\x92\x1a\x17\xd5\x6b\xf4"
+ "\x50\xe3\x06\xe4\x76\x9f\x65\x00"
+ "\xbd\x7a\xe2\x64\x26\xf2\xe4\x7e"
+ "\x40\xf2\x80\xab\x62\xd5\xef\x23"
+ "\x8b\xfb\x6f\x24\x6e\x9b\x66\x0e"
+ "\xf4\x1c\x24\x1e\x1d\x26\x95\x09"
+ "\x94\x3c\xb2\xb6\x02\xa7\xd9\x9a",
+ .klen = 32,
+ .len = 512,
+ },
+
+};
+
#endif /* _CRYPTO_TESTMGR_H */
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index 5bf334e..a5ec6b9 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -3049,11 +3049,11 @@
int t_debug_id = atomic_inc_return(&binder_last_id);
char *secctx = NULL;
u32 secctx_sz = 0;
+ bool is_nested = false;
struct list_head sgc_head;
struct list_head pf_head;
const void __user *user_buffer = (const void __user *)
(uintptr_t)tr->data.ptr.buffer;
- bool is_nested = false;
INIT_LIST_HEAD(&sgc_head);
INIT_LIST_HEAD(&pf_head);
@@ -3253,7 +3253,6 @@
if (target_thread)
e->to_thread = target_thread->pid;
e->to_proc = target_proc->pid;
- trace_android_rvh_binder_transaction(target_proc, proc, thread, tr);
/* TODO: reuse incoming transaction for reply */
t = kzalloc(sizeof(*t), GFP_KERNEL);
diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c
index ef49565..fd718ab 100644
--- a/drivers/android/vendor_hooks.c
+++ b/drivers/android/vendor_hooks.c
@@ -109,6 +109,7 @@
#include <trace/hooks/dm.h>
#include <trace/hooks/direct_io.h>
#include <trace/hooks/loop.h>
+#include <trace/hooks/psi.h>
/*
* Export tracepoints that act as a bare tracehook (ie: have no trace event
* associated with them) to allow external modules to probe them.
@@ -141,10 +142,16 @@
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_killed_process);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_start);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rtmutex_wait_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_opt_spin_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_opt_spin_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mutex_can_spin_on_owner);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_start);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_read_wait_finish);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_start);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_wait_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_opt_spin_start);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_opt_spin_finish);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_can_spin_on_owner);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_sched_show_task);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_enter);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpu_idle_exit);
@@ -227,7 +234,6 @@
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_cpuidle_psci_exit);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cgroup_force_kthread_migration);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_wait_for_work);
-EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_binder_transaction);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_entry);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_select_worklist_ilocked);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_binder_proc_transaction_finish);
@@ -307,6 +313,7 @@
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rproc_recovery_set);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_disable_thermal_cooling_stats);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_enable_thermal_power_throttle);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_modify_thermal_throttle_update);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_init);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_wake);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rwsem_write_finished);
@@ -417,6 +424,8 @@
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ctl_dirty_rate);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_direct_io_update_bio);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_loop_prepare_cmd);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_event);
+EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_group);
/*
* For type visibility
*/
diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
index f2469d3..c4e03b4 100644
--- a/drivers/base/regmap/regcache.c
+++ b/drivers/base/regmap/regcache.c
@@ -495,7 +495,8 @@
void regcache_cache_only(struct regmap *map, bool enable)
{
map->lock(map->lock_arg);
- WARN_ON(map->cache_bypass && enable);
+ WARN_ON(map->cache_type != REGCACHE_NONE &&
+ map->cache_bypass && enable);
map->cache_only = enable;
trace_regmap_cache_only(map, enable);
map->unlock(map->lock_arg);
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index bcc18de..28d81e7 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -2191,35 +2191,44 @@
static void loop_handle_cmd(struct loop_cmd *cmd)
{
+ struct cgroup_subsys_state *cmd_blkcg_css = cmd->blkcg_css;
+ struct cgroup_subsys_state *cmd_memcg_css = cmd->memcg_css;
struct request *rq = blk_mq_rq_from_pdu(cmd);
const bool write = op_is_write(req_op(rq));
struct loop_device *lo = rq->q->queuedata;
int ret = 0;
struct mem_cgroup *old_memcg = NULL;
+ const bool use_aio = cmd->use_aio;
if (write && (lo->lo_flags & LO_FLAGS_READ_ONLY)) {
ret = -EIO;
goto failed;
}
- if (cmd->blkcg_css)
- kthread_associate_blkcg(cmd->blkcg_css);
- if (cmd->memcg_css)
+ if (cmd_blkcg_css)
+ kthread_associate_blkcg(cmd_blkcg_css);
+ if (cmd_memcg_css)
old_memcg = set_active_memcg(
- mem_cgroup_from_css(cmd->memcg_css));
+ mem_cgroup_from_css(cmd_memcg_css));
+ /*
+ * do_req_filebacked() may call blk_mq_complete_request() synchronously
+ * or asynchronously if using aio. Hence, do not touch 'cmd' after
+ * do_req_filebacked() has returned unless we are sure that 'cmd' has
+ * not yet been completed.
+ */
ret = do_req_filebacked(lo, rq);
- if (cmd->blkcg_css)
+ if (cmd_blkcg_css)
kthread_associate_blkcg(NULL);
- if (cmd->memcg_css) {
+ if (cmd_memcg_css) {
set_active_memcg(old_memcg);
- css_put(cmd->memcg_css);
+ css_put(cmd_memcg_css);
}
failed:
/* complete non-aio request */
- if (!cmd->use_aio || ret) {
+ if (!use_aio || ret) {
if (ret == -EOPNOTSUPP)
cmd->ret = ret;
else
diff --git a/drivers/char/hw_random/virtio-rng.c b/drivers/char/hw_random/virtio-rng.c
index a90001e..208c547 100644
--- a/drivers/char/hw_random/virtio-rng.c
+++ b/drivers/char/hw_random/virtio-rng.c
@@ -18,13 +18,20 @@
struct virtrng_info {
struct hwrng hwrng;
struct virtqueue *vq;
- struct completion have_data;
char name[25];
- unsigned int data_avail;
int index;
bool busy;
bool hwrng_register_done;
bool hwrng_removed;
+ /* data transfer */
+ struct completion have_data;
+ unsigned int data_avail;
+ /* minimal size returned by rng_buffer_size() */
+#if SMP_CACHE_BYTES < 32
+ u8 data[32];
+#else
+ u8 data[SMP_CACHE_BYTES];
+#endif
};
static void random_recv_done(struct virtqueue *vq)
@@ -39,14 +46,14 @@
}
/* The host will fill any buffer we give it with sweet, sweet randomness. */
-static void register_buffer(struct virtrng_info *vi, u8 *buf, size_t size)
+static void register_buffer(struct virtrng_info *vi)
{
struct scatterlist sg;
- sg_init_one(&sg, buf, size);
+ sg_init_one(&sg, vi->data, sizeof(vi->data));
/* There should always be room for one buffer. */
- virtqueue_add_inbuf(vi->vq, &sg, 1, buf, GFP_KERNEL);
+ virtqueue_add_inbuf(vi->vq, &sg, 1, vi->data, GFP_KERNEL);
virtqueue_kick(vi->vq);
}
@@ -55,6 +62,8 @@
{
int ret;
struct virtrng_info *vi = (struct virtrng_info *)rng->priv;
+ unsigned int chunk;
+ size_t read;
if (vi->hwrng_removed)
return -ENODEV;
@@ -62,19 +71,33 @@
if (!vi->busy) {
vi->busy = true;
reinit_completion(&vi->have_data);
- register_buffer(vi, buf, size);
+ register_buffer(vi);
}
if (!wait)
return 0;
- ret = wait_for_completion_killable(&vi->have_data);
- if (ret < 0)
- return ret;
+ read = 0;
+ while (size != 0) {
+ ret = wait_for_completion_killable(&vi->have_data);
+ if (ret < 0)
+ return ret;
+
+ chunk = min_t(unsigned int, size, vi->data_avail);
+ memcpy(buf + read, vi->data, chunk);
+ read += chunk;
+ size -= chunk;
+ vi->data_avail = 0;
+
+ if (size != 0) {
+ reinit_completion(&vi->have_data);
+ register_buffer(vi);
+ }
+ }
vi->busy = false;
- return vi->data_avail;
+ return read;
}
static void virtio_cleanup(struct hwrng *rng)
diff --git a/drivers/cpuidle/cpuidle-psci.c b/drivers/cpuidle/cpuidle-psci.c
index 85e66d9..cfefef7 100644
--- a/drivers/cpuidle/cpuidle-psci.c
+++ b/drivers/cpuidle/cpuidle-psci.c
@@ -69,10 +69,12 @@
if (ret)
return -1;
- trace_android_vh_cpuidle_psci_enter(dev, s2idle);
/* Do runtime PM to manage a hierarchical CPU toplogy. */
rcu_irq_enter_irqson();
+
+ trace_android_vh_cpuidle_psci_enter(dev, s2idle);
+
if (s2idle)
dev_pm_genpd_suspend(pd_dev);
else
@@ -90,10 +92,11 @@
dev_pm_genpd_resume(pd_dev);
else
pm_runtime_get_sync(pd_dev);
- rcu_irq_exit_irqson();
trace_android_vh_cpuidle_psci_exit(dev, s2idle);
+ rcu_irq_exit_irqson();
+
cpu_pm_exit();
/* Clear the domain state to start fresh when back from idle. */
diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c
index af4e6fa..3971676a 100644
--- a/drivers/dma-buf/heaps/system_heap.c
+++ b/drivers/dma-buf/heaps/system_heap.c
@@ -318,9 +318,9 @@
for_each_sgtable_page(sgt, &piter, 0) {
p = sg_page_iter_page(&piter);
- vaddr = kmap_atomic(p);
+ vaddr = kmap_local_page(p);
memset(vaddr, 0, PAGE_SIZE);
- kunmap_atomic(vaddr);
+ kunmap_local(vaddr);
}
return ret;
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index f197aed..96672c1 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -1119,6 +1119,16 @@
return;
}
goto unknown;
+ case HID_UP_CAMERA:
+ switch (usage->hid & HID_USAGE) {
+ case 0x020:
+ map_key_clear(KEY_CAMERA_FOCUS); break;
+ case 0x021:
+ map_key_clear(KEY_CAMERA); break;
+ default:
+ goto ignore;
+ }
+ break;
case HID_UP_HPVENDOR: /* Reported on a Dutch layout HP5308 */
set_bit(EV_REP, input->evbit);
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 7cb3f40..6e8249d 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -221,13 +221,23 @@
const struct iommu_ops *ops = dev->bus->iommu_ops;
struct iommu_device *iommu_dev;
struct iommu_group *group;
+ static DEFINE_MUTEX(iommu_probe_device_lock);
int ret;
if (!ops)
return -ENODEV;
-
- if (!dev_iommu_get(dev))
- return -ENOMEM;
+ /*
+ * Serialise to avoid races between IOMMU drivers registering in
+ * parallel and/or the "replay" calls from ACPI/OF code via client
+ * driver probe. Once the latter have been cleaned up we should
+ * probably be able to use device_lock() here to minimise the scope,
+ * but for now enforcing a simple global ordering is fine.
+ */
+ mutex_lock(&iommu_probe_device_lock);
+ if (!dev_iommu_get(dev)) {
+ ret = -ENOMEM;
+ goto err_unlock;
+ }
if (!try_module_get(ops->owner)) {
ret = -EINVAL;
@@ -247,11 +257,14 @@
ret = PTR_ERR(group);
goto out_release;
}
- iommu_group_put(group);
+ mutex_lock(&group->mutex);
if (group_list && !group->default_domain && list_empty(&group->entry))
list_add_tail(&group->entry, group_list);
+ mutex_unlock(&group->mutex);
+ iommu_group_put(group);
+ mutex_unlock(&iommu_probe_device_lock);
iommu_device_link(iommu_dev, dev);
return 0;
@@ -265,6 +278,9 @@
err_free:
dev_iommu_free(dev);
+err_unlock:
+ mutex_unlock(&iommu_probe_device_lock);
+
return ret;
}
@@ -1807,11 +1823,11 @@
return ret;
list_for_each_entry_safe(group, next, &group_list, entry) {
+ mutex_lock(&group->mutex);
+
/* Remove item from the list */
list_del_init(&group->entry);
- mutex_lock(&group->mutex);
-
/* Try to allocate default domain */
probe_alloc_default_domain(bus, group);
diff --git a/drivers/md/Kconfig b/drivers/md/Kconfig
index 54702af..0ced36a 100644
--- a/drivers/md/Kconfig
+++ b/drivers/md/Kconfig
@@ -663,14 +663,17 @@
If unsure, say N.
-config DM_AUDIT
- bool "DM audit events"
- depends on AUDIT
+config DM_BOW
+ tristate "Backup block device"
+ depends on BLK_DEV_DM
+ select DM_BUFIO
help
- Generate audit events for device-mapper.
+ This device-mapper target takes a device and keeps a log of all
+ changes using free blocks identified by issuing a trim command.
+ This can then be restored by running a command line utility,
+ or committed by simply replacing the target.
- Enables audit logging of several security relevant events in the
- particular device-mapper targets, especially the integrity target.
+ If unsure, say N.
config DM_USER
tristate "Block device in userspace"
diff --git a/drivers/md/Makefile b/drivers/md/Makefile
index 762660a..7890bcc 100644
--- a/drivers/md/Makefile
+++ b/drivers/md/Makefile
@@ -84,6 +84,7 @@
obj-$(CONFIG_DM_INTEGRITY) += dm-integrity.o
obj-$(CONFIG_DM_ZONED) += dm-zoned.o
obj-$(CONFIG_DM_WRITECACHE) += dm-writecache.o
+obj-$(CONFIG_DM_BOW) += dm-bow.o
obj-$(CONFIG_DM_USER) += dm-user.o
ifeq ($(CONFIG_DM_INIT),y)
diff --git a/drivers/md/dm-bow.c b/drivers/md/dm-bow.c
new file mode 100644
index 0000000..70d56ad
--- /dev/null
+++ b/drivers/md/dm-bow.c
@@ -0,0 +1,1309 @@
+/*
+ * Copyright (C) 2018 Google Limited.
+ *
+ * This file is released under the GPL.
+ */
+
+#include "dm.h"
+#include "dm-core.h"
+
+#include <linux/crc32.h>
+#include <linux/dm-bufio.h>
+#include <linux/module.h>
+
+#define DM_MSG_PREFIX "bow"
+
+struct log_entry {
+ u64 source;
+ u64 dest;
+ u32 size;
+ u32 checksum;
+} __packed;
+
+struct log_sector {
+ u32 magic;
+ u16 header_version;
+ u16 header_size;
+ u32 block_size;
+ u32 count;
+ u32 sequence;
+ sector_t sector0;
+ struct log_entry entries[];
+} __packed;
+
+/*
+ * MAGIC is BOW in ascii
+ */
+#define MAGIC 0x00574f42
+#define HEADER_VERSION 0x0100
+
+/*
+ * A sorted set of ranges representing the state of the data on the device.
+ * Use an rb_tree for fast lookup of a given sector
+ * Consecutive ranges are always of different type - operations on this
+ * set must merge matching consecutive ranges.
+ *
+ * Top range is always of type TOP
+ */
+struct bow_range {
+ struct rb_node node;
+ sector_t sector;
+ enum {
+ INVALID, /* Type not set */
+ SECTOR0, /* First sector - holds log record */
+ SECTOR0_CURRENT,/* Live contents of sector0 */
+ UNCHANGED, /* Original contents */
+ TRIMMED, /* Range has been trimmed */
+ CHANGED, /* Range has been changed */
+ BACKUP, /* Range is being used as a backup */
+ TOP, /* Final range - sector is size of device */
+ } type;
+ struct list_head trimmed_list; /* list of TRIMMED ranges */
+};
+
+static const char * const readable_type[] = {
+ "Invalid",
+ "Sector0",
+ "Sector0_current",
+ "Unchanged",
+ "Free",
+ "Changed",
+ "Backup",
+ "Top",
+};
+
+enum state {
+ TRIM,
+ CHECKPOINT,
+ COMMITTED,
+};
+
+struct bow_context {
+ struct dm_dev *dev;
+ u32 block_size;
+ u32 block_shift;
+ struct workqueue_struct *workqueue;
+ struct dm_bufio_client *bufio;
+ struct mutex ranges_lock; /* Hold to access this struct and/or ranges */
+ struct rb_root ranges;
+ struct dm_kobject_holder kobj_holder; /* for sysfs attributes */
+ atomic_t state; /* One of the enum state values above */
+ u64 trims_total;
+ struct log_sector *log_sector;
+ struct list_head trimmed_list;
+ bool forward_trims;
+};
+
+sector_t range_top(struct bow_range *br)
+{
+ return container_of(rb_next(&br->node), struct bow_range, node)
+ ->sector;
+}
+
+u64 range_size(struct bow_range *br)
+{
+ return (range_top(br) - br->sector) * SECTOR_SIZE;
+}
+
+static sector_t bvec_top(struct bvec_iter *bi_iter)
+{
+ return bi_iter->bi_sector + bi_iter->bi_size / SECTOR_SIZE;
+}
+
+/*
+ * Find the first range that overlaps with bi_iter
+ * bi_iter is set to the size of the overlapping sub-range
+ */
+static struct bow_range *find_first_overlapping_range(struct rb_root *ranges,
+ struct bvec_iter *bi_iter)
+{
+ struct rb_node *node = ranges->rb_node;
+ struct bow_range *br;
+
+ while (node) {
+ br = container_of(node, struct bow_range, node);
+
+ if (br->sector <= bi_iter->bi_sector
+ && bi_iter->bi_sector < range_top(br))
+ break;
+
+ if (bi_iter->bi_sector < br->sector)
+ node = node->rb_left;
+ else
+ node = node->rb_right;
+ }
+
+ WARN_ON(!node);
+ if (!node)
+ return NULL;
+
+ if (range_top(br) - bi_iter->bi_sector
+ < bi_iter->bi_size >> SECTOR_SHIFT)
+ bi_iter->bi_size = (range_top(br) - bi_iter->bi_sector)
+ << SECTOR_SHIFT;
+
+ return br;
+}
+
+void add_before(struct rb_root *ranges, struct bow_range *new_br,
+ struct bow_range *existing)
+{
+ struct rb_node *parent = &(existing->node);
+ struct rb_node **link = &(parent->rb_left);
+
+ while (*link) {
+ parent = *link;
+ link = &((*link)->rb_right);
+ }
+
+ rb_link_node(&new_br->node, parent, link);
+ rb_insert_color(&new_br->node, ranges);
+}
+
+/*
+ * Given a range br returned by find_first_overlapping_range, split br into a
+ * leading range, a range matching the bi_iter and a trailing range.
+ * Leading and trailing may end up size 0 and will then be deleted. The
+ * new range matching the bi_iter is then returned and should have its type
+ * and type specific fields populated.
+ * If bi_iter runs off the end of the range, bi_iter is truncated accordingly
+ */
+static int split_range(struct bow_context *bc, struct bow_range **br,
+ struct bvec_iter *bi_iter)
+{
+ struct bow_range *new_br;
+
+ if (bi_iter->bi_sector < (*br)->sector) {
+ WARN_ON(true);
+ return BLK_STS_IOERR;
+ }
+
+ if (bi_iter->bi_sector > (*br)->sector) {
+ struct bow_range *leading_br =
+ kzalloc(sizeof(*leading_br), GFP_KERNEL);
+
+ if (!leading_br)
+ return BLK_STS_RESOURCE;
+
+ *leading_br = **br;
+ if (leading_br->type == TRIMMED)
+ list_add(&leading_br->trimmed_list, &bc->trimmed_list);
+
+ add_before(&bc->ranges, leading_br, *br);
+ (*br)->sector = bi_iter->bi_sector;
+ }
+
+ if (bvec_top(bi_iter) >= range_top(*br)) {
+ bi_iter->bi_size = (range_top(*br) - (*br)->sector)
+ * SECTOR_SIZE;
+ return BLK_STS_OK;
+ }
+
+ /* new_br will be the beginning, existing br will be the tail */
+ new_br = kzalloc(sizeof(*new_br), GFP_KERNEL);
+ if (!new_br)
+ return BLK_STS_RESOURCE;
+
+ new_br->sector = (*br)->sector;
+ (*br)->sector = bvec_top(bi_iter);
+ add_before(&bc->ranges, new_br, *br);
+ *br = new_br;
+
+ return BLK_STS_OK;
+}
+
+/*
+ * Sets type of a range. May merge range into surrounding ranges
+ * Since br may be invalidated, always sets br to NULL to prevent
+ * usage after this is called
+ */
+static void set_type(struct bow_context *bc, struct bow_range **br, int type)
+{
+ struct bow_range *prev = container_of(rb_prev(&(*br)->node),
+ struct bow_range, node);
+ struct bow_range *next = container_of(rb_next(&(*br)->node),
+ struct bow_range, node);
+
+ if ((*br)->type == TRIMMED) {
+ bc->trims_total -= range_size(*br);
+ list_del(&(*br)->trimmed_list);
+ }
+
+ if (type == TRIMMED) {
+ bc->trims_total += range_size(*br);
+ list_add(&(*br)->trimmed_list, &bc->trimmed_list);
+ }
+
+ (*br)->type = type;
+
+ if (next->type == type) {
+ if (type == TRIMMED)
+ list_del(&next->trimmed_list);
+ rb_erase(&next->node, &bc->ranges);
+ kfree(next);
+ }
+
+ if (prev->type == type) {
+ if (type == TRIMMED)
+ list_del(&(*br)->trimmed_list);
+ rb_erase(&(*br)->node, &bc->ranges);
+ kfree(*br);
+ }
+
+ *br = NULL;
+}
+
+static struct bow_range *find_free_range(struct bow_context *bc)
+{
+ if (list_empty(&bc->trimmed_list)) {
+ DMERR("Unable to find free space to back up to");
+ return NULL;
+ }
+
+ return list_first_entry(&bc->trimmed_list, struct bow_range,
+ trimmed_list);
+}
+
+static sector_t sector_to_page(struct bow_context const *bc, sector_t sector)
+{
+ WARN_ON((sector & (((sector_t)1 << (bc->block_shift - SECTOR_SHIFT)) - 1))
+ != 0);
+ return sector >> (bc->block_shift - SECTOR_SHIFT);
+}
+
+static int copy_data(struct bow_context const *bc,
+ struct bow_range *source, struct bow_range *dest,
+ u32 *checksum)
+{
+ int i;
+
+ if (range_size(source) != range_size(dest)) {
+ WARN_ON(1);
+ return BLK_STS_IOERR;
+ }
+
+ if (checksum)
+ *checksum = sector_to_page(bc, source->sector);
+
+ for (i = 0; i < range_size(source) >> bc->block_shift; ++i) {
+ struct dm_buffer *read_buffer, *write_buffer;
+ u8 *read, *write;
+ sector_t page = sector_to_page(bc, source->sector) + i;
+
+ read = dm_bufio_read(bc->bufio, page, &read_buffer);
+ if (IS_ERR(read)) {
+ DMERR("Cannot read page %llu",
+ (unsigned long long)page);
+ return PTR_ERR(read);
+ }
+
+ if (checksum)
+ *checksum = crc32(*checksum, read, bc->block_size);
+
+ write = dm_bufio_new(bc->bufio,
+ sector_to_page(bc, dest->sector) + i,
+ &write_buffer);
+ if (IS_ERR(write)) {
+ DMERR("Cannot write sector");
+ dm_bufio_release(read_buffer);
+ return PTR_ERR(write);
+ }
+
+ memcpy(write, read, bc->block_size);
+
+ dm_bufio_mark_buffer_dirty(write_buffer);
+ dm_bufio_release(write_buffer);
+ dm_bufio_release(read_buffer);
+ }
+
+ dm_bufio_write_dirty_buffers(bc->bufio);
+ return BLK_STS_OK;
+}
+
+/****** logging functions ******/
+
+static int add_log_entry(struct bow_context *bc, sector_t source, sector_t dest,
+ unsigned int size, u32 checksum);
+
+static int backup_log_sector(struct bow_context *bc)
+{
+ struct bow_range *first_br, *free_br;
+ struct bvec_iter bi_iter;
+ u32 checksum = 0;
+ int ret;
+
+ first_br = container_of(rb_first(&bc->ranges), struct bow_range, node);
+
+ if (first_br->type != SECTOR0) {
+ WARN_ON(1);
+ return BLK_STS_IOERR;
+ }
+
+ if (range_size(first_br) != bc->block_size) {
+ WARN_ON(1);
+ return BLK_STS_IOERR;
+ }
+
+ free_br = find_free_range(bc);
+ /* No space left - return this error to userspace */
+ if (!free_br)
+ return BLK_STS_NOSPC;
+ bi_iter.bi_sector = free_br->sector;
+ bi_iter.bi_size = bc->block_size;
+ ret = split_range(bc, &free_br, &bi_iter);
+ if (ret)
+ return ret;
+ if (bi_iter.bi_size != bc->block_size) {
+ WARN_ON(1);
+ return BLK_STS_IOERR;
+ }
+
+ ret = copy_data(bc, first_br, free_br, &checksum);
+ if (ret)
+ return ret;
+
+ bc->log_sector->count = 0;
+ bc->log_sector->sequence++;
+ ret = add_log_entry(bc, first_br->sector, free_br->sector,
+ range_size(first_br), checksum);
+ if (ret)
+ return ret;
+
+ set_type(bc, &free_br, BACKUP);
+ return BLK_STS_OK;
+}
+
+static int add_log_entry(struct bow_context *bc, sector_t source, sector_t dest,
+ unsigned int size, u32 checksum)
+{
+ struct dm_buffer *sector_buffer;
+ u8 *sector;
+
+ if (sizeof(struct log_sector)
+ + sizeof(struct log_entry) * (bc->log_sector->count + 1)
+ > bc->block_size) {
+ int ret = backup_log_sector(bc);
+
+ if (ret)
+ return ret;
+ }
+
+ sector = dm_bufio_new(bc->bufio, 0, §or_buffer);
+ if (IS_ERR(sector)) {
+ DMERR("Cannot write boot sector");
+ dm_bufio_release(sector_buffer);
+ return BLK_STS_NOSPC;
+ }
+
+ bc->log_sector->entries[bc->log_sector->count].source = source;
+ bc->log_sector->entries[bc->log_sector->count].dest = dest;
+ bc->log_sector->entries[bc->log_sector->count].size = size;
+ bc->log_sector->entries[bc->log_sector->count].checksum = checksum;
+ bc->log_sector->count++;
+
+ memcpy(sector, bc->log_sector, bc->block_size);
+ dm_bufio_mark_buffer_dirty(sector_buffer);
+ dm_bufio_release(sector_buffer);
+ dm_bufio_write_dirty_buffers(bc->bufio);
+ return BLK_STS_OK;
+}
+
+static int prepare_log(struct bow_context *bc)
+{
+ struct bow_range *free_br, *first_br;
+ struct bvec_iter bi_iter;
+ u32 checksum = 0;
+ int ret;
+
+ /* Carve out first sector as log sector */
+ first_br = container_of(rb_first(&bc->ranges), struct bow_range, node);
+ if (first_br->type != UNCHANGED) {
+ WARN_ON(1);
+ return BLK_STS_IOERR;
+ }
+
+ if (range_size(first_br) < bc->block_size) {
+ WARN_ON(1);
+ return BLK_STS_IOERR;
+ }
+ bi_iter.bi_sector = 0;
+ bi_iter.bi_size = bc->block_size;
+ ret = split_range(bc, &first_br, &bi_iter);
+ if (ret)
+ return ret;
+ first_br->type = SECTOR0;
+ if (range_size(first_br) != bc->block_size) {
+ WARN_ON(1);
+ return BLK_STS_IOERR;
+ }
+
+ /* Find free sector for active sector0 reads/writes */
+ free_br = find_free_range(bc);
+ if (!free_br)
+ return BLK_STS_NOSPC;
+ bi_iter.bi_sector = free_br->sector;
+ bi_iter.bi_size = bc->block_size;
+ ret = split_range(bc, &free_br, &bi_iter);
+ if (ret)
+ return ret;
+
+ /* Copy data */
+ ret = copy_data(bc, first_br, free_br, NULL);
+ if (ret)
+ return ret;
+
+ bc->log_sector->sector0 = free_br->sector;
+
+ set_type(bc, &free_br, SECTOR0_CURRENT);
+
+ /* Find free sector to back up original sector zero */
+ free_br = find_free_range(bc);
+ if (!free_br)
+ return BLK_STS_NOSPC;
+ bi_iter.bi_sector = free_br->sector;
+ bi_iter.bi_size = bc->block_size;
+ ret = split_range(bc, &free_br, &bi_iter);
+ if (ret)
+ return ret;
+
+ /* Back up */
+ ret = copy_data(bc, first_br, free_br, &checksum);
+ if (ret)
+ return ret;
+
+ /*
+ * Set up our replacement boot sector - it will get written when we
+ * add the first log entry, which we do immediately
+ */
+ bc->log_sector->magic = MAGIC;
+ bc->log_sector->header_version = HEADER_VERSION;
+ bc->log_sector->header_size = sizeof(*bc->log_sector);
+ bc->log_sector->block_size = bc->block_size;
+ bc->log_sector->count = 0;
+ bc->log_sector->sequence = 0;
+
+ /* Add log entry */
+ ret = add_log_entry(bc, first_br->sector, free_br->sector,
+ range_size(first_br), checksum);
+ if (ret)
+ return ret;
+
+ set_type(bc, &free_br, BACKUP);
+ return BLK_STS_OK;
+}
+
+static struct bow_range *find_sector0_current(struct bow_context *bc)
+{
+ struct bvec_iter bi_iter;
+
+ bi_iter.bi_sector = bc->log_sector->sector0;
+ bi_iter.bi_size = bc->block_size;
+ return find_first_overlapping_range(&bc->ranges, &bi_iter);
+}
+
+/****** sysfs interface functions ******/
+
+static ssize_t state_show(struct kobject *kobj, struct kobj_attribute *attr,
+ char *buf)
+{
+ struct bow_context *bc = container_of(kobj, struct bow_context,
+ kobj_holder.kobj);
+
+ return scnprintf(buf, PAGE_SIZE, "%d\n", atomic_read(&bc->state));
+}
+
+static ssize_t state_store(struct kobject *kobj, struct kobj_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct bow_context *bc = container_of(kobj, struct bow_context,
+ kobj_holder.kobj);
+ enum state state, original_state;
+ int ret;
+
+ state = buf[0] - '0';
+ if (state < TRIM || state > COMMITTED) {
+ DMERR("State value %d out of range", state);
+ return -EINVAL;
+ }
+
+ mutex_lock(&bc->ranges_lock);
+ original_state = atomic_read(&bc->state);
+ if (state != original_state + 1) {
+ DMERR("Invalid state change from %d to %d",
+ original_state, state);
+ ret = -EINVAL;
+ goto bad;
+ }
+
+ DMINFO("Switching to state %s", state == CHECKPOINT ? "Checkpoint"
+ : state == COMMITTED ? "Committed" : "Unknown");
+
+ if (state == CHECKPOINT) {
+ ret = prepare_log(bc);
+ if (ret) {
+ DMERR("Failed to switch to checkpoint state");
+ goto bad;
+ }
+ } else if (state == COMMITTED) {
+ struct bow_range *br = find_sector0_current(bc);
+ struct bow_range *sector0_br =
+ container_of(rb_first(&bc->ranges), struct bow_range,
+ node);
+
+ ret = copy_data(bc, br, sector0_br, 0);
+ if (ret) {
+ DMERR("Failed to switch to committed state");
+ goto bad;
+ }
+ }
+ atomic_inc(&bc->state);
+ ret = count;
+
+bad:
+ mutex_unlock(&bc->ranges_lock);
+ return ret;
+}
+
+static ssize_t free_show(struct kobject *kobj, struct kobj_attribute *attr,
+ char *buf)
+{
+ struct bow_context *bc = container_of(kobj, struct bow_context,
+ kobj_holder.kobj);
+ u64 trims_total;
+
+ mutex_lock(&bc->ranges_lock);
+ trims_total = bc->trims_total;
+ mutex_unlock(&bc->ranges_lock);
+
+ return scnprintf(buf, PAGE_SIZE, "%llu\n", trims_total);
+}
+
+static struct kobj_attribute attr_state = __ATTR_RW(state);
+static struct kobj_attribute attr_free = __ATTR_RO(free);
+
+static struct attribute *bow_attrs[] = {
+ &attr_state.attr,
+ &attr_free.attr,
+ NULL
+};
+
+static struct kobj_type bow_ktype = {
+ .sysfs_ops = &kobj_sysfs_ops,
+ .default_attrs = bow_attrs,
+ .release = dm_kobject_release
+};
+
+/****** constructor/destructor ******/
+
+static void dm_bow_dtr(struct dm_target *ti)
+{
+ struct bow_context *bc = (struct bow_context *) ti->private;
+ struct kobject *kobj;
+
+ if (bc->workqueue)
+ destroy_workqueue(bc->workqueue);
+ if (bc->bufio)
+ dm_bufio_client_destroy(bc->bufio);
+
+ kobj = &bc->kobj_holder.kobj;
+ if (kobj->state_initialized) {
+ kobject_put(kobj);
+ wait_for_completion(dm_get_completion_from_kobject(kobj));
+ }
+
+ while (rb_first(&bc->ranges)) {
+ struct bow_range *br = container_of(rb_first(&bc->ranges),
+ struct bow_range, node);
+
+ rb_erase(&br->node, &bc->ranges);
+ kfree(br);
+ }
+
+ mutex_destroy(&bc->ranges_lock);
+ kfree(bc->log_sector);
+ kfree(bc);
+}
+
+static void dm_bow_io_hints(struct dm_target *ti, struct queue_limits *limits)
+{
+ struct bow_context *bc = ti->private;
+ const unsigned int block_size = bc->block_size;
+
+ limits->logical_block_size =
+ max_t(unsigned int, limits->logical_block_size, block_size);
+ limits->physical_block_size =
+ max_t(unsigned int, limits->physical_block_size, block_size);
+ limits->io_min = max_t(unsigned int, limits->io_min, block_size);
+
+ if (limits->max_discard_sectors == 0) {
+ limits->discard_granularity = 1 << 12;
+ limits->max_hw_discard_sectors = 1 << 15;
+ limits->max_discard_sectors = 1 << 15;
+ bc->forward_trims = false;
+ } else {
+ limits->discard_granularity = 1 << 12;
+ bc->forward_trims = true;
+ }
+}
+
+static int dm_bow_ctr_optional(struct dm_target *ti, unsigned int argc, char **argv)
+{
+ struct bow_context *bc = ti->private;
+ struct dm_arg_set as;
+ static const struct dm_arg _args[] = {
+ {0, 1, "Invalid number of feature args"},
+ };
+ unsigned int opt_params;
+ const char *opt_string;
+ int err;
+ char dummy;
+
+ as.argc = argc;
+ as.argv = argv;
+
+ err = dm_read_arg_group(_args, &as, &opt_params, &ti->error);
+ if (err)
+ return err;
+
+ while (opt_params--) {
+ opt_string = dm_shift_arg(&as);
+ if (!opt_string) {
+ ti->error = "Not enough feature arguments";
+ return -EINVAL;
+ }
+
+ if (sscanf(opt_string, "block_size:%u%c",
+ &bc->block_size, &dummy) == 1) {
+ if (bc->block_size < SECTOR_SIZE ||
+ bc->block_size > 4096 ||
+ !is_power_of_2(bc->block_size)) {
+ ti->error = "Invalid block_size";
+ return -EINVAL;
+ }
+ } else {
+ ti->error = "Invalid feature arguments";
+ return -EINVAL;
+ }
+ }
+
+ return 0;
+}
+
+static int dm_bow_ctr(struct dm_target *ti, unsigned int argc, char **argv)
+{
+ struct bow_context *bc;
+ struct bow_range *br;
+ int ret;
+
+ if (argc < 1) {
+ ti->error = "Invalid argument count";
+ return -EINVAL;
+ }
+
+ bc = kzalloc(sizeof(*bc), GFP_KERNEL);
+ if (!bc) {
+ ti->error = "Cannot allocate bow context";
+ return -ENOMEM;
+ }
+
+ ti->num_flush_bios = 1;
+ ti->num_discard_bios = 1;
+ ti->num_write_same_bios = 1;
+ ti->private = bc;
+
+ ret = dm_get_device(ti, argv[0], dm_table_get_mode(ti->table),
+ &bc->dev);
+ if (ret) {
+ ti->error = "Device lookup failed";
+ goto bad;
+ }
+
+ bc->block_size =
+ bdev_get_queue(bc->dev->bdev)->limits.logical_block_size;
+ if (argc > 1) {
+ ret = dm_bow_ctr_optional(ti, argc - 1, &argv[1]);
+ if (ret)
+ goto bad;
+ }
+
+ bc->block_shift = ilog2(bc->block_size);
+ bc->log_sector = kzalloc(bc->block_size, GFP_KERNEL);
+ if (!bc->log_sector) {
+ ti->error = "Cannot allocate log sector";
+ goto bad;
+ }
+
+ init_completion(&bc->kobj_holder.completion);
+ mutex_init(&bc->ranges_lock);
+ bc->ranges = RB_ROOT;
+ bc->bufio = dm_bufio_client_create(bc->dev->bdev, bc->block_size, 1, 0,
+ NULL, NULL);
+ if (IS_ERR(bc->bufio)) {
+ ti->error = "Cannot initialize dm-bufio";
+ ret = PTR_ERR(bc->bufio);
+ bc->bufio = NULL;
+ goto bad;
+ }
+
+ bc->workqueue = alloc_workqueue("dm-bow",
+ WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM
+ | WQ_UNBOUND, num_online_cpus());
+ if (!bc->workqueue) {
+ ti->error = "Cannot allocate workqueue";
+ ret = -ENOMEM;
+ goto bad;
+ }
+
+ INIT_LIST_HEAD(&bc->trimmed_list);
+
+ br = kzalloc(sizeof(*br), GFP_KERNEL);
+ if (!br) {
+ ti->error = "Cannot allocate ranges";
+ ret = -ENOMEM;
+ goto bad;
+ }
+
+ br->sector = ti->len;
+ br->type = TOP;
+ rb_link_node(&br->node, NULL, &bc->ranges.rb_node);
+ rb_insert_color(&br->node, &bc->ranges);
+
+ br = kzalloc(sizeof(*br), GFP_KERNEL);
+ if (!br) {
+ ti->error = "Cannot allocate ranges";
+ ret = -ENOMEM;
+ goto bad;
+ }
+
+ br->sector = 0;
+ br->type = UNCHANGED;
+ rb_link_node(&br->node, bc->ranges.rb_node,
+ &bc->ranges.rb_node->rb_left);
+ rb_insert_color(&br->node, &bc->ranges);
+
+ ti->discards_supported = true;
+
+ return 0;
+
+bad:
+ dm_bow_dtr(ti);
+ return ret;
+}
+
+void dm_bow_resume(struct dm_target *ti)
+{
+ struct mapped_device *md = dm_table_get_md(ti->table);
+ struct bow_context *bc = ti->private;
+ int ret;
+
+ if (bc->kobj_holder.kobj.state_initialized)
+ return;
+
+ ret = kobject_init_and_add(&bc->kobj_holder.kobj, &bow_ktype,
+ &disk_to_dev(dm_disk(md))->kobj, "%s",
+ "bow");
+ if (ret)
+ ti->error = "Cannot create sysfs node";
+}
+
+/****** Handle writes ******/
+
+static int prepare_unchanged_range(struct bow_context *bc, struct bow_range *br,
+ struct bvec_iter *bi_iter,
+ bool record_checksum)
+{
+ struct bow_range *backup_br;
+ struct bvec_iter backup_bi;
+ sector_t log_source, log_dest;
+ unsigned int log_size;
+ u32 checksum = 0;
+ int ret;
+ int original_type;
+ sector_t sector0;
+
+ /* Find a free range */
+ backup_br = find_free_range(bc);
+ if (!backup_br)
+ return BLK_STS_NOSPC;
+
+ /* Carve out a backup range. This may be smaller than the br given */
+ backup_bi.bi_sector = backup_br->sector;
+ backup_bi.bi_size = min(range_size(backup_br), (u64) bi_iter->bi_size);
+ ret = split_range(bc, &backup_br, &backup_bi);
+ if (ret)
+ return ret;
+
+ /*
+ * Carve out a changed range. This will not be smaller than the backup
+ * br since the backup br is smaller than the source range and iterator
+ */
+ bi_iter->bi_size = backup_bi.bi_size;
+ ret = split_range(bc, &br, bi_iter);
+ if (ret)
+ return ret;
+ if (range_size(br) != range_size(backup_br)) {
+ WARN_ON(1);
+ return BLK_STS_IOERR;
+ }
+
+
+ /* Copy data over */
+ ret = copy_data(bc, br, backup_br, record_checksum ? &checksum : NULL);
+ if (ret)
+ return ret;
+
+ /* Add an entry to the log */
+ log_source = br->sector;
+ log_dest = backup_br->sector;
+ log_size = range_size(br);
+
+ /*
+ * Set the types. Note that since set_type also amalgamates ranges
+ * we have to set both sectors to their final type before calling
+ * set_type on either
+ */
+ original_type = br->type;
+ sector0 = backup_br->sector;
+ bc->trims_total -= range_size(backup_br);
+ if (backup_br->type == TRIMMED)
+ list_del(&backup_br->trimmed_list);
+ backup_br->type = br->type == SECTOR0_CURRENT ? SECTOR0_CURRENT
+ : BACKUP;
+ br->type = CHANGED;
+ set_type(bc, &backup_br, backup_br->type);
+
+ /*
+ * Add the log entry after marking the backup sector, since adding a log
+ * can cause another backup
+ */
+ ret = add_log_entry(bc, log_source, log_dest, log_size, checksum);
+ if (ret) {
+ br->type = original_type;
+ return ret;
+ }
+
+ /* Now it is safe to mark this backup successful */
+ if (original_type == SECTOR0_CURRENT)
+ bc->log_sector->sector0 = sector0;
+
+ set_type(bc, &br, br->type);
+ return ret;
+}
+
+static int prepare_free_range(struct bow_context *bc, struct bow_range *br,
+ struct bvec_iter *bi_iter)
+{
+ int ret;
+
+ ret = split_range(bc, &br, bi_iter);
+ if (ret)
+ return ret;
+ set_type(bc, &br, CHANGED);
+ return BLK_STS_OK;
+}
+
+static int prepare_changed_range(struct bow_context *bc, struct bow_range *br,
+ struct bvec_iter *bi_iter)
+{
+ /* Nothing to do ... */
+ return BLK_STS_OK;
+}
+
+static int prepare_one_range(struct bow_context *bc,
+ struct bvec_iter *bi_iter)
+{
+ struct bow_range *br = find_first_overlapping_range(&bc->ranges,
+ bi_iter);
+ switch (br->type) {
+ case CHANGED:
+ return prepare_changed_range(bc, br, bi_iter);
+
+ case TRIMMED:
+ return prepare_free_range(bc, br, bi_iter);
+
+ case UNCHANGED:
+ case BACKUP:
+ return prepare_unchanged_range(bc, br, bi_iter, true);
+
+ /*
+ * We cannot track the checksum for the active sector0, since it
+ * may change at any point.
+ */
+ case SECTOR0_CURRENT:
+ return prepare_unchanged_range(bc, br, bi_iter, false);
+
+ case SECTOR0: /* Handled in the dm_bow_map */
+ case TOP: /* Illegal - top is off the end of the device */
+ default:
+ WARN_ON(1);
+ return BLK_STS_IOERR;
+ }
+}
+
+struct write_work {
+ struct work_struct work;
+ struct bow_context *bc;
+ struct bio *bio;
+};
+
+static void bow_write(struct work_struct *work)
+{
+ struct write_work *ww = container_of(work, struct write_work, work);
+ struct bow_context *bc = ww->bc;
+ struct bio *bio = ww->bio;
+ struct bvec_iter bi_iter = bio->bi_iter;
+ int ret = BLK_STS_OK;
+
+ kfree(ww);
+
+ mutex_lock(&bc->ranges_lock);
+ do {
+ ret = prepare_one_range(bc, &bi_iter);
+ bi_iter.bi_sector += bi_iter.bi_size / SECTOR_SIZE;
+ bi_iter.bi_size = bio->bi_iter.bi_size
+ - (bi_iter.bi_sector - bio->bi_iter.bi_sector)
+ * SECTOR_SIZE;
+ } while (!ret && bi_iter.bi_size);
+
+ mutex_unlock(&bc->ranges_lock);
+
+ if (!ret) {
+ bio_set_dev(bio, bc->dev->bdev);
+ submit_bio(bio);
+ } else {
+ DMERR("Write failure with error %d", -ret);
+ bio->bi_status = ret;
+ bio_endio(bio);
+ }
+}
+
+static int queue_write(struct bow_context *bc, struct bio *bio)
+{
+ struct write_work *ww = kmalloc(sizeof(*ww), GFP_NOIO | __GFP_NORETRY
+ | __GFP_NOMEMALLOC | __GFP_NOWARN);
+ if (!ww) {
+ DMERR("Failed to allocate write_work");
+ return -ENOMEM;
+ }
+
+ INIT_WORK(&ww->work, bow_write);
+ ww->bc = bc;
+ ww->bio = bio;
+ queue_work(bc->workqueue, &ww->work);
+ return DM_MAPIO_SUBMITTED;
+}
+
+static int handle_sector0(struct bow_context *bc, struct bio *bio)
+{
+ int ret = DM_MAPIO_REMAPPED;
+
+ if (bio->bi_iter.bi_size > bc->block_size) {
+ struct bio *split = bio_split(bio,
+ bc->block_size >> SECTOR_SHIFT,
+ GFP_NOIO,
+ &fs_bio_set);
+ if (!split) {
+ DMERR("Failed to split bio");
+ bio->bi_status = BLK_STS_RESOURCE;
+ bio_endio(bio);
+ return DM_MAPIO_SUBMITTED;
+ }
+
+ bio_chain(split, bio);
+ split->bi_iter.bi_sector = bc->log_sector->sector0;
+ bio_set_dev(split, bc->dev->bdev);
+ submit_bio(split);
+
+ if (bio_data_dir(bio) == WRITE)
+ ret = queue_write(bc, bio);
+ } else {
+ bio->bi_iter.bi_sector = bc->log_sector->sector0;
+ }
+
+ return ret;
+}
+
+static int add_trim(struct bow_context *bc, struct bio *bio)
+{
+ struct bow_range *br;
+ struct bvec_iter bi_iter = bio->bi_iter;
+
+ DMDEBUG("add_trim: %llu, %u",
+ (unsigned long long)bio->bi_iter.bi_sector,
+ bio->bi_iter.bi_size);
+
+ do {
+ br = find_first_overlapping_range(&bc->ranges, &bi_iter);
+
+ switch (br->type) {
+ case UNCHANGED:
+ if (!split_range(bc, &br, &bi_iter))
+ set_type(bc, &br, TRIMMED);
+ break;
+
+ case TRIMMED:
+ /* Nothing to do */
+ break;
+
+ default:
+ /* No other case is legal in TRIM state */
+ WARN_ON(true);
+ break;
+ }
+
+ bi_iter.bi_sector += bi_iter.bi_size / SECTOR_SIZE;
+ bi_iter.bi_size = bio->bi_iter.bi_size
+ - (bi_iter.bi_sector - bio->bi_iter.bi_sector)
+ * SECTOR_SIZE;
+
+ } while (bi_iter.bi_size);
+
+ bio_endio(bio);
+ return DM_MAPIO_SUBMITTED;
+}
+
+static int remove_trim(struct bow_context *bc, struct bio *bio)
+{
+ struct bow_range *br;
+ struct bvec_iter bi_iter = bio->bi_iter;
+
+ DMDEBUG("remove_trim: %llu, %u",
+ (unsigned long long)bio->bi_iter.bi_sector,
+ bio->bi_iter.bi_size);
+
+ do {
+ br = find_first_overlapping_range(&bc->ranges, &bi_iter);
+
+ switch (br->type) {
+ case UNCHANGED:
+ /* Nothing to do */
+ break;
+
+ case TRIMMED:
+ if (!split_range(bc, &br, &bi_iter))
+ set_type(bc, &br, UNCHANGED);
+ break;
+
+ default:
+ /* No other case is legal in TRIM state */
+ WARN_ON(true);
+ break;
+ }
+
+ bi_iter.bi_sector += bi_iter.bi_size / SECTOR_SIZE;
+ bi_iter.bi_size = bio->bi_iter.bi_size
+ - (bi_iter.bi_sector - bio->bi_iter.bi_sector)
+ * SECTOR_SIZE;
+
+ } while (bi_iter.bi_size);
+
+ return DM_MAPIO_REMAPPED;
+}
+
+int remap_unless_illegal_trim(struct bow_context *bc, struct bio *bio)
+{
+ if (!bc->forward_trims && bio_op(bio) == REQ_OP_DISCARD) {
+ bio->bi_status = BLK_STS_NOTSUPP;
+ bio_endio(bio);
+ return DM_MAPIO_SUBMITTED;
+ } else {
+ bio_set_dev(bio, bc->dev->bdev);
+ return DM_MAPIO_REMAPPED;
+ }
+}
+
+/****** dm interface ******/
+
+static int dm_bow_map(struct dm_target *ti, struct bio *bio)
+{
+ int ret = DM_MAPIO_REMAPPED;
+ struct bow_context *bc = ti->private;
+
+ if (likely(bc->state.counter == COMMITTED))
+ return remap_unless_illegal_trim(bc, bio);
+
+ if (bio_data_dir(bio) == READ && bio->bi_iter.bi_sector != 0)
+ return remap_unless_illegal_trim(bc, bio);
+
+ if (atomic_read(&bc->state) != COMMITTED) {
+ enum state state;
+
+ mutex_lock(&bc->ranges_lock);
+ state = atomic_read(&bc->state);
+ if (state == TRIM) {
+ if (bio_op(bio) == REQ_OP_DISCARD)
+ ret = add_trim(bc, bio);
+ else if (bio_data_dir(bio) == WRITE)
+ ret = remove_trim(bc, bio);
+ else
+ /* pass-through */;
+ } else if (state == CHECKPOINT) {
+ if (bio->bi_iter.bi_sector == 0)
+ ret = handle_sector0(bc, bio);
+ else if (bio_data_dir(bio) == WRITE)
+ ret = queue_write(bc, bio);
+ else
+ /* pass-through */;
+ } else {
+ /* pass-through */
+ }
+ mutex_unlock(&bc->ranges_lock);
+ }
+
+ if (ret == DM_MAPIO_REMAPPED)
+ return remap_unless_illegal_trim(bc, bio);
+
+ return ret;
+}
+
+static void dm_bow_tablestatus(struct dm_target *ti, char *result,
+ unsigned int maxlen)
+{
+ char *end = result + maxlen;
+ struct bow_context *bc = ti->private;
+ struct rb_node *i;
+ int trimmed_list_length = 0;
+ int trimmed_range_count = 0;
+ struct bow_range *br;
+
+ if (maxlen == 0)
+ return;
+ result[0] = 0;
+
+ list_for_each_entry(br, &bc->trimmed_list, trimmed_list)
+ if (br->type == TRIMMED) {
+ ++trimmed_list_length;
+ } else {
+ scnprintf(result, end - result,
+ "ERROR: non-trimmed entry in trimmed_list");
+ return;
+ }
+
+ if (!rb_first(&bc->ranges)) {
+ scnprintf(result, end - result, "ERROR: Empty ranges");
+ return;
+ }
+
+ if (container_of(rb_first(&bc->ranges), struct bow_range, node)
+ ->sector) {
+ scnprintf(result, end - result,
+ "ERROR: First range does not start at sector 0");
+ return;
+ }
+
+ for (i = rb_first(&bc->ranges); i; i = rb_next(i)) {
+ struct bow_range *br = container_of(i, struct bow_range, node);
+
+ result += scnprintf(result, end - result, "%s: %llu",
+ readable_type[br->type],
+ (unsigned long long)br->sector);
+ if (result >= end)
+ return;
+
+ result += scnprintf(result, end - result, "\n");
+ if (result >= end)
+ return;
+
+ if (br->type == TRIMMED)
+ ++trimmed_range_count;
+
+ if (br->type == TOP) {
+ if (br->sector != ti->len) {
+ scnprintf(result, end - result,
+ "\nERROR: Top sector is incorrect");
+ }
+
+ if (&br->node != rb_last(&bc->ranges)) {
+ scnprintf(result, end - result,
+ "\nERROR: Top sector is not last");
+ }
+
+ break;
+ }
+
+ if (!rb_next(i)) {
+ scnprintf(result, end - result,
+ "\nERROR: Last range not of type TOP");
+ return;
+ }
+
+ if (br->sector > range_top(br)) {
+ scnprintf(result, end - result,
+ "\nERROR: sectors out of order");
+ return;
+ }
+ }
+
+ if (trimmed_range_count != trimmed_list_length)
+ scnprintf(result, end - result,
+ "\nERROR: not all trimmed ranges in trimmed list");
+}
+
+static void dm_bow_status(struct dm_target *ti, status_type_t type,
+ unsigned int status_flags, char *result,
+ unsigned int maxlen)
+{
+ switch (type) {
+ case STATUSTYPE_INFO:
+ case STATUSTYPE_IMA:
+ if (maxlen)
+ result[0] = 0;
+ break;
+
+ case STATUSTYPE_TABLE:
+ dm_bow_tablestatus(ti, result, maxlen);
+ break;
+ }
+}
+
+int dm_bow_prepare_ioctl(struct dm_target *ti, struct block_device **bdev)
+{
+ struct bow_context *bc = ti->private;
+ struct dm_dev *dev = bc->dev;
+
+ *bdev = dev->bdev;
+ /* Only pass ioctls through if the device sizes match exactly. */
+ return ti->len != i_size_read(dev->bdev->bd_inode) >> SECTOR_SHIFT;
+}
+
+static int dm_bow_iterate_devices(struct dm_target *ti,
+ iterate_devices_callout_fn fn, void *data)
+{
+ struct bow_context *bc = ti->private;
+
+ return fn(ti, bc->dev, 0, ti->len, data);
+}
+
+static struct target_type bow_target = {
+ .name = "bow",
+ .version = {1, 2, 0},
+ .features = DM_TARGET_PASSES_CRYPTO,
+ .module = THIS_MODULE,
+ .ctr = dm_bow_ctr,
+ .resume = dm_bow_resume,
+ .dtr = dm_bow_dtr,
+ .map = dm_bow_map,
+ .status = dm_bow_status,
+ .prepare_ioctl = dm_bow_prepare_ioctl,
+ .iterate_devices = dm_bow_iterate_devices,
+ .io_hints = dm_bow_io_hints,
+};
+
+int __init dm_bow_init(void)
+{
+ int r = dm_register_target(&bow_target);
+
+ if (r < 0)
+ DMERR("registering bow failed %d", r);
+ return r;
+}
+
+void dm_bow_exit(void)
+{
+ dm_unregister_target(&bow_target);
+}
+
+MODULE_LICENSE("GPL");
+
+module_init(dm_bow_init);
+module_exit(dm_bow_exit);
diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
index 426299c..5ecca6d 100644
--- a/drivers/md/dm-verity-target.c
+++ b/drivers/md/dm-verity-target.c
@@ -1280,8 +1280,16 @@
goto bad;
}
- /* WQ_UNBOUND greatly improves performance when running on ramdisk */
- v->verify_wq = alloc_workqueue("kverityd", WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM | WQ_UNBOUND, num_online_cpus());
+ /*
+ * Using WQ_HIGHPRI improves throughput and completion latency by
+ * reducing wait times when reading from a dm-verity device.
+ *
+ * Also as required for the "try_verify_in_tasklet" feature: WQ_HIGHPRI
+ * allows verify_wq to preempt softirq since verification in tasklet
+ * will fall-back to using it for error handling (or if the bufio cache
+ * doesn't have required hashes).
+ */
+ v->verify_wq = alloc_workqueue("kverityd", WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
if (!v->verify_wq) {
ti->error = "Cannot allocate workqueue";
r = -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index e1f10db..e3fe5e0 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -1119,7 +1119,7 @@
NL80211_CHAN_HT20 : NL80211_CHAN_NO_HT);
mutex_lock(&vif->wdev.mtx);
- cfg80211_ch_switch_notify(vif->ndev, &chandef, 0);
+ cfg80211_ch_switch_notify(vif->ndev, &chandef, 0, 0);
mutex_unlock(&vif->wdev.mtx);
}
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index c110082..4b8db12 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -6013,7 +6013,7 @@
brcmf_dbg(CONN, "Report roaming result\n");
if (profile->use_fwsup == BRCMF_PROFILE_FWSUP_1X && profile->is_ft) {
- cfg80211_port_authorized(ndev, profile->bssid, GFP_KERNEL);
+ cfg80211_port_authorized(ndev, profile->bssid, NULL, 0, GFP_KERNEL);
brcmf_dbg(CONN, "Report port authorized\n");
}
diff --git a/drivers/net/wireless/marvell/mwifiex/11h.c b/drivers/net/wireless/marvell/mwifiex/11h.c
index 4ca8d01..e8c1c60 100644
--- a/drivers/net/wireless/marvell/mwifiex/11h.c
+++ b/drivers/net/wireless/marvell/mwifiex/11h.c
@@ -304,6 +304,6 @@
mwifiex_dbg(priv->adapter, MSG,
"indicating channel switch completion to kernel\n");
mutex_lock(&priv->wdev.mtx);
- cfg80211_ch_switch_notify(priv->netdev, &priv->dfs_chandef, 0);
+ cfg80211_ch_switch_notify(priv->netdev, &priv->dfs_chandef, 0, 0);
mutex_unlock(&priv->wdev.mtx);
}
diff --git a/drivers/net/wireless/quantenna/qtnfmac/event.c b/drivers/net/wireless/quantenna/qtnfmac/event.c
index 4fafe37..31bc58e 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/event.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/event.c
@@ -478,7 +478,7 @@
continue;
mutex_lock(&vif->wdev.mtx);
- cfg80211_ch_switch_notify(vif->netdev, &chandef, 0);
+ cfg80211_ch_switch_notify(vif->netdev, &chandef, 0, 0);
mutex_unlock(&vif->wdev.mtx);
}
@@ -662,6 +662,7 @@
memcpy(ie, owe_ev->ies, ie_len);
owe_info.ie_len = ie_len;
owe_info.ie = ie;
+ owe_info.assoc_link_id = -1;
pr_info("%s: external OWE processing: peer=%pM\n",
vif->netdev->name, owe_ev->peer);
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 335e7bd..8d9f6f0 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -26,7 +26,6 @@
#include <linux/serial_core.h>
#include <linux/sysfs.h>
#include <linux/random.h>
-#include <linux/kmemleak.h>
#include <asm/setup.h> /* for COMMAND_LINE_SIZE */
#include <asm/page.h>
@@ -525,12 +524,9 @@
size = dt_mem_next_cell(dt_root_size_cells, &prop);
if (size &&
- early_init_dt_reserve_memory_arch(base, size, nomap) == 0) {
+ early_init_dt_reserve_memory_arch(base, size, nomap) == 0)
pr_debug("Reserved memory: reserved region for node '%s': base %pa, size %lu MiB\n",
uname, &base, (unsigned long)(size / SZ_1M));
- if (!nomap)
- kmemleak_alloc_phys(base, size, 0, 0);
- }
else
pr_info("Reserved memory: failed to reserve memory for node '%s': base %pa, size %lu MiB\n",
uname, &base, (unsigned long)(size / SZ_1M));
diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index 0e48adc..9ddb503 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -36,7 +36,7 @@
#define CMN_CI_CHILD_COUNT GENMASK_ULL(15, 0)
#define CMN_CI_CHILD_PTR_OFFSET GENMASK_ULL(31, 16)
-#define CMN_CHILD_NODE_ADDR GENMASK(27, 0)
+#define CMN_CHILD_NODE_ADDR GENMASK(29, 0)
#define CMN_CHILD_NODE_EXTERNAL BIT(31)
#define CMN_MAX_DIMENSION 8
@@ -71,9 +71,11 @@
#define CMN_DTM_WPn(n) (0x1A0 + (n) * 0x18)
#define CMN_DTM_WPn_CONFIG(n) (CMN_DTM_WPn(n) + 0x00)
#define CMN_DTM_WPn_CONFIG_WP_DEV_SEL2 GENMASK_ULL(18,17)
-#define CMN_DTM_WPn_CONFIG_WP_COMBINE BIT(6)
-#define CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE BIT(5)
-#define CMN_DTM_WPn_CONFIG_WP_GRP BIT(4)
+#define CMN_DTM_WPn_CONFIG_WP_COMBINE BIT(9)
+#define CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE BIT(8)
+#define CMN600_WPn_CONFIG_WP_COMBINE BIT(6)
+#define CMN600_WPn_CONFIG_WP_EXCLUSIVE BIT(5)
+#define CMN_DTM_WPn_CONFIG_WP_GRP GENMASK_ULL(5, 4)
#define CMN_DTM_WPn_CONFIG_WP_CHN_SEL GENMASK_ULL(3, 1)
#define CMN_DTM_WPn_CONFIG_WP_DEV_SEL BIT(0)
#define CMN_DTM_WPn_VAL(n) (CMN_DTM_WPn(n) + 0x08)
@@ -155,6 +157,7 @@
#define CMN_CONFIG_WP_COMBINE GENMASK_ULL(27, 24)
#define CMN_CONFIG_WP_DEV_SEL GENMASK_ULL(50, 48)
#define CMN_CONFIG_WP_CHN_SEL GENMASK_ULL(55, 51)
+/* Note that we don't yet support the tertiary match group on newer IPs */
#define CMN_CONFIG_WP_GRP BIT_ULL(56)
#define CMN_CONFIG_WP_EXCLUSIVE BIT_ULL(57)
#define CMN_CONFIG1_WP_VAL GENMASK_ULL(63, 0)
@@ -595,6 +598,9 @@
if ((intf & 4) && !(cmn->ports_used & BIT(intf & 3)))
return 0;
+ if (chan == 4 && cmn->model == CMN600)
+ return 0;
+
if ((chan == 5 && cmn->rsp_vc_num < 2) ||
(chan == 6 && cmn->dat_vc_num < 2))
return 0;
@@ -905,15 +911,18 @@
u32 grp = CMN_EVENT_WP_GRP(event);
u32 exc = CMN_EVENT_WP_EXCLUSIVE(event);
u32 combine = CMN_EVENT_WP_COMBINE(event);
+ bool is_cmn600 = to_cmn(event->pmu)->model == CMN600;
config = FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_DEV_SEL, dev) |
FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_CHN_SEL, chn) |
FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_GRP, grp) |
- FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE, exc) |
FIELD_PREP(CMN_DTM_WPn_CONFIG_WP_DEV_SEL2, dev >> 1);
+ if (exc)
+ config |= is_cmn600 ? CMN600_WPn_CONFIG_WP_EXCLUSIVE :
+ CMN_DTM_WPn_CONFIG_WP_EXCLUSIVE;
if (combine && !grp)
- config |= CMN_DTM_WPn_CONFIG_WP_COMBINE;
-
+ config |= is_cmn600 ? CMN600_WPn_CONFIG_WP_COMBINE :
+ CMN_DTM_WPn_CONFIG_WP_COMBINE;
return config;
}
@@ -1242,7 +1251,6 @@
hw->dn++;
continue;
}
- hw->dtcs_used |= arm_cmn_node_to_xp(cmn, dn)->dtc;
hw->num_dns++;
if (bynodeid)
break;
@@ -1255,6 +1263,12 @@
nodeid, nid.x, nid.y, nid.port, nid.dev, type);
return -EINVAL;
}
+ /*
+ * Keep assuming non-cycles events count in all DTC domains; turns out
+ * it's hard to make a worthwhile optimisation around this, short of
+ * going all-in with domain-local counter allocation as well.
+ */
+ hw->dtcs_used = (1U << cmn->num_dtcs) - 1;
return arm_cmn_validate_group(cmn, event);
}
diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c
index 1a65160..08c7938 100644
--- a/drivers/scsi/ufs/ufs-qcom.c
+++ b/drivers/scsi/ufs/ufs-qcom.c
@@ -1548,10 +1548,16 @@
#endif
static const struct dev_pm_ops ufs_qcom_pm_ops = {
- SET_SYSTEM_SLEEP_PM_OPS(ufshcd_system_suspend, ufshcd_system_resume)
SET_RUNTIME_PM_OPS(ufshcd_runtime_suspend, ufshcd_runtime_resume, NULL)
.prepare = ufshcd_suspend_prepare,
.complete = ufshcd_resume_complete,
+#ifdef CONFIG_PM_SLEEP
+ .suspend = ufshcd_system_suspend,
+ .resume = ufshcd_system_resume,
+ .freeze = ufshcd_system_freeze,
+ .restore = ufshcd_system_restore,
+ .thaw = ufshcd_system_thaw,
+#endif
};
static struct platform_driver ufs_qcom_pltform = {
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 379114f..5735d85 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -7872,7 +7872,7 @@
peer_pa_tactivate_us = peer_pa_tactivate *
gran_to_us_table[peer_granularity - 1];
- if (pa_tactivate_us > peer_pa_tactivate_us) {
+ if (pa_tactivate_us >= peer_pa_tactivate_us) {
u32 new_peer_pa_tactivate;
new_peer_pa_tactivate = pa_tactivate_us /
@@ -8716,9 +8716,11 @@
for (retries = 3; retries > 0; --retries) {
ret = scsi_execute(sdp, cmd, DMA_NONE, NULL, 0, NULL, &sshdr,
HZ, 0, 0, RQF_PM, NULL);
- if (!scsi_status_is_check_condition(ret) ||
- !scsi_sense_valid(&sshdr) ||
- sshdr.sense_key != UNIT_ATTENTION)
+ /*
+ * scsi_execute() only returns a negative value if the request
+ * queue is dying.
+ */
+ if (ret <= 0)
break;
}
if (ret) {
@@ -9499,6 +9501,56 @@
}
EXPORT_SYMBOL_GPL(ufshcd_remove);
+#ifdef CONFIG_PM_SLEEP
+int ufshcd_system_freeze(struct device *dev)
+{
+
+ return ufshcd_system_suspend(dev);
+
+}
+EXPORT_SYMBOL_GPL(ufshcd_system_freeze);
+
+int ufshcd_system_restore(struct device *dev)
+{
+
+ struct ufs_hba *hba = dev_get_drvdata(dev);
+ int ret;
+
+ ret = ufshcd_system_resume(dev);
+ if (ret)
+ return ret;
+
+ /* Configure UTRL and UTMRL base address registers */
+ ufshcd_writel(hba, lower_32_bits(hba->utrdl_dma_addr),
+ REG_UTP_TRANSFER_REQ_LIST_BASE_L);
+ ufshcd_writel(hba, upper_32_bits(hba->utrdl_dma_addr),
+ REG_UTP_TRANSFER_REQ_LIST_BASE_H);
+ ufshcd_writel(hba, lower_32_bits(hba->utmrdl_dma_addr),
+ REG_UTP_TASK_REQ_LIST_BASE_L);
+ ufshcd_writel(hba, upper_32_bits(hba->utmrdl_dma_addr),
+ REG_UTP_TASK_REQ_LIST_BASE_H);
+ /*
+ * Make sure that UTRL and UTMRL base address registers
+ * are updated with the latest queue addresses. Only after
+ * updating these addresses, we can queue the new commands.
+ */
+ mb();
+
+ /* Resuming from hibernate, assume that link was OFF */
+ ufshcd_set_link_off(hba);
+
+ return 0;
+
+}
+EXPORT_SYMBOL_GPL(ufshcd_system_restore);
+
+int ufshcd_system_thaw(struct device *dev)
+{
+ return ufshcd_system_resume(dev);
+}
+EXPORT_SYMBOL_GPL(ufshcd_system_thaw);
+#endif /* CONFIG_PM_SLEEP */
+
/**
* ufshcd_dealloc_host - deallocate Host Bus Adapter (HBA)
* @hba: pointer to Host Bus Adapter (HBA)
diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
index 94451f6..bbdb212 100644
--- a/drivers/scsi/ufs/ufshcd.h
+++ b/drivers/scsi/ufs/ufshcd.h
@@ -1150,8 +1150,12 @@
#ifdef CONFIG_PM_SLEEP
extern int ufshcd_system_suspend(struct device *dev);
extern int ufshcd_system_resume(struct device *dev);
+extern int ufshcd_system_freeze(struct device *dev);
+extern int ufshcd_system_thaw(struct device *dev);
+extern int ufshcd_system_restore(struct device *dev);
#endif
extern int ufshcd_shutdown(struct ufs_hba *hba);
+
extern int ufshcd_dme_configure_adapt(struct ufs_hba *hba,
int agreed_gear,
int adapt_val);
diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c
index 006960f..aaabbd4 100644
--- a/drivers/thermal/cpufreq_cooling.c
+++ b/drivers/thermal/cpufreq_cooling.c
@@ -60,6 +60,7 @@
* @cdev: thermal_cooling_device pointer to keep track of the
* registered cooling device.
* @policy: cpufreq policy.
+ * @cooling_ops: cpufreq callbacks to thermal cooling device ops
* @idle_time: idle time stats
* @qos_req: PM QoS contraint to apply
*
@@ -72,6 +73,7 @@
unsigned int max_level;
struct em_perf_domain *em;
struct cpufreq_policy *policy;
+ struct thermal_cooling_device_ops cooling_ops;
#ifndef CONFIG_SMP
struct time_in_idle *idle_time;
#endif
@@ -496,14 +498,6 @@
return ret;
}
-/* Bind cpufreq callbacks to thermal cooling device ops */
-
-static struct thermal_cooling_device_ops cpufreq_cooling_ops = {
- .get_max_state = cpufreq_get_max_state,
- .get_cur_state = cpufreq_get_cur_state,
- .set_cur_state = cpufreq_set_cur_state,
-};
-
/**
* __cpufreq_cooling_register - helper function to create cpufreq cooling device
* @np: a valid struct device_node to the cooling device device tree node
@@ -565,7 +559,10 @@
/* max_level is an index, not a counter */
cpufreq_cdev->max_level = i - 1;
- cooling_ops = &cpufreq_cooling_ops;
+ cooling_ops = &cpufreq_cdev->cooling_ops;
+ cooling_ops->get_max_state = cpufreq_get_max_state;
+ cooling_ops->get_cur_state = cpufreq_get_cur_state;
+ cooling_ops->set_cur_state = cpufreq_set_cur_state;
#ifdef CONFIG_THERMAL_GOV_POWER_ALLOCATOR
if (em_is_sane(cpufreq_cdev, em)) {
diff --git a/drivers/thermal/gov_power_allocator.c b/drivers/thermal/gov_power_allocator.c
index 1f47321..7acba5f 100644
--- a/drivers/thermal/gov_power_allocator.c
+++ b/drivers/thermal/gov_power_allocator.c
@@ -725,22 +725,22 @@
return 0;
/*
- * Enable or disable IPA control by temperature and user power budget.
+ * Control the IPA by user.
* About enable:
- * true: enable IPA control when temperature >= swtich_on_temp.
- * false: disable IPA control when temperature < switch_on_temp.
+ * true: enable IPA control.
+ * false: disable IPA control.
* About override:
* true: power budget is overridden by user power budget.
* false: power budget is not overridden, there's no other thermal
* requirement.
*/
trace_android_vh_enable_thermal_power_throttle(&enable, &override);
- if (enable)
- ret = tz->ops->get_trip_temp(tz, params->trip_switch_on,
+ ret = tz->ops->get_trip_temp(tz, params->trip_switch_on,
&switch_on_temp);
if (!enable || (!ret && (tz->temperature < switch_on_temp) &&
!override)) {
update = (tz->last_temperature >= switch_on_temp);
+ trace_android_vh_modify_thermal_throttle_update(tz, &update);
tz->passive = 0;
reset_pid_controller(params);
allow_maximum_power(tz, update);
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 01478bf..f5f0670 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1709,6 +1709,7 @@
else if (!ret)
dep->flags |= DWC3_EP_END_TRANSFER_PENDING;
+ dep->flags &= ~DWC3_EP_DELAY_STOP;
return ret;
}
@@ -2100,8 +2101,6 @@
{
struct dwc3_gadget_ep_cmd_params params;
struct dwc3 *dwc = dep->dwc;
- struct dwc3_request *req;
- struct dwc3_request *tmp;
int ret;
if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
@@ -2150,8 +2149,8 @@
dwc3_stop_active_transfer(dep, true, true);
- list_for_each_entry_safe(req, tmp, &dep->started_list, list)
- dwc3_gadget_move_cancelled_request(req, DWC3_REQUEST_STATUS_STALLED);
+ if (!list_empty(&dep->started_list))
+ dep->flags |= DWC3_EP_DELAY_START;
if (dep->flags & DWC3_EP_END_TRANSFER_PENDING ||
(dep->flags & DWC3_EP_DELAY_STOP)) {
@@ -2162,8 +2161,6 @@
return 0;
}
- dwc3_gadget_ep_cleanup_cancelled_requests(dep);
-
ret = dwc3_send_clear_stall_ep_cmd(dep);
if (ret) {
dev_err(dwc->dev, "failed to clear STALL on %s\n",
@@ -3705,8 +3702,10 @@
if (dep->number <= 1 && dwc->ep0state != EP0_DATA_PHASE)
return;
+ if (interrupt && (dep->flags & DWC3_EP_DELAY_STOP))
+ return;
+
if (!(dep->flags & DWC3_EP_TRANSFER_STARTED) ||
- (dep->flags & DWC3_EP_DELAY_STOP) ||
(dep->flags & DWC3_EP_END_TRANSFER_PENDING))
return;
@@ -4210,15 +4209,8 @@
break;
case DWC3_DEVICE_EVENT_SUSPEND:
/* It changed to be suspend event for version 2.30a and above */
- if (!DWC3_VER_IS_PRIOR(DWC3, 230A)) {
- /*
- * Ignore suspend event until the gadget enters into
- * USB_STATE_CONFIGURED state.
- */
- if (dwc->gadget->state >= USB_STATE_CONFIGURED)
- dwc3_gadget_suspend_interrupt(dwc,
- event->event_info);
- }
+ if (!DWC3_VER_IS_PRIOR(DWC3, 230A))
+ dwc3_gadget_suspend_interrupt(dwc, event->event_info);
break;
case DWC3_DEVICE_EVENT_SOF:
case DWC3_DEVICE_EVENT_ERRATIC_ERROR:
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 9315313..83df30b 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -2447,6 +2447,10 @@
usb_gadget_clear_selfpowered(gadget);
usb_gadget_vbus_draw(gadget, maxpower);
+ } else {
+ maxpower = CONFIG_USB_GADGET_VBUS_DRAW;
+ maxpower = min(maxpower, 100U);
+ usb_gadget_vbus_draw(gadget, maxpower);
}
cdev->suspended = 0;
diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index 7729edd..3f87d9a 100644
--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -16,7 +16,7 @@
#include <linux/usb/ch9.h>
#ifdef CONFIG_USB_CONFIGFS_F_ACC
-extern int acc_ctrlrequest(struct usb_composite_dev *cdev,
+extern int acc_ctrlrequest_composite(struct usb_composite_dev *cdev,
const struct usb_ctrlrequest *ctrl);
void acc_disconnect(void);
#endif
@@ -461,6 +461,12 @@
* from another gadget or a random directory.
* Also a function instance can only be linked once.
*/
+
+ if (gi->composite.gadget_driver.udc_name) {
+ ret = -EINVAL;
+ goto out;
+ }
+
list_for_each_entry(a_fi, &gi->available_func, cfs_list) {
if (a_fi == fi)
break;
@@ -1562,7 +1568,7 @@
#ifdef CONFIG_USB_CONFIGFS_F_ACC
if (value < 0)
- value = acc_ctrlrequest(cdev, c);
+ value = acc_ctrlrequest_composite(cdev, c);
#endif
if (value < 0)
diff --git a/drivers/usb/gadget/function/f_accessory.c b/drivers/usb/gadget/function/f_accessory.c
index e444e20..84f2bfc 100644
--- a/drivers/usb/gadget/function/f_accessory.c
+++ b/drivers/usb/gadget/function/f_accessory.c
@@ -29,6 +29,7 @@
#include <linux/kthread.h>
#include <linux/freezer.h>
#include <linux/kref.h>
+#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/file.h>
@@ -1076,11 +1077,32 @@
}
EXPORT_SYMBOL_GPL(acc_ctrlrequest);
+int acc_ctrlrequest_composite(struct usb_composite_dev *cdev,
+ const struct usb_ctrlrequest *ctrl)
+{
+ u16 w_length = le16_to_cpu(ctrl->wLength);
+
+ if (w_length > USB_COMP_EP0_BUFSIZ) {
+ if (ctrl->bRequestType & USB_DIR_IN) {
+ /* Cast away the const, we are going to overwrite on purpose. */
+ __le16 *temp = (__le16 *)&ctrl->wLength;
+
+ *temp = cpu_to_le16(USB_COMP_EP0_BUFSIZ);
+ w_length = USB_COMP_EP0_BUFSIZ;
+ } else {
+ return -EINVAL;
+ }
+ }
+ return acc_ctrlrequest(cdev, ctrl);
+}
+EXPORT_SYMBOL_GPL(acc_ctrlrequest_composite);
+
static int
__acc_function_bind(struct usb_configuration *c,
struct usb_function *f, bool configfs)
{
struct usb_composite_dev *cdev = c->cdev;
+ struct usb_string *us;
struct acc_dev *dev = func_to_dev(f);
int id;
int ret;
@@ -1088,13 +1110,11 @@
DBG(cdev, "acc_function_bind dev: %p\n", dev);
if (configfs) {
- if (acc_string_defs[INTERFACE_STRING_INDEX].id == 0) {
- ret = usb_string_id(c->cdev);
- if (ret < 0)
- return ret;
- acc_string_defs[INTERFACE_STRING_INDEX].id = ret;
- acc_interface_desc.iInterface = ret;
- }
+ us = usb_gstrings_attach(cdev, acc_strings, ARRAY_SIZE(acc_string_defs));
+ if (IS_ERR(us))
+ return PTR_ERR(us);
+ ret = us[INTERFACE_STRING_INDEX].id;
+ acc_interface_desc.iInterface = ret;
dev->cdev = c->cdev;
}
ret = hid_register_driver(&acc_hid_driver);
diff --git a/drivers/usb/gadget/function/uvc_configfs.c b/drivers/usb/gadget/function/uvc_configfs.c
index 4303a32..76cb60d 100644
--- a/drivers/usb/gadget/function/uvc_configfs.c
+++ b/drivers/usb/gadget/function/uvc_configfs.c
@@ -1512,7 +1512,7 @@
UVCG_UNCOMPRESSED_ATTR(b_default_frame_index, bDefaultFrameIndex, 8);
UVCG_UNCOMPRESSED_ATTR_RO(b_aspect_ratio_x, bAspectRatioX, 8);
UVCG_UNCOMPRESSED_ATTR_RO(b_aspect_ratio_y, bAspectRatioY, 8);
-UVCG_UNCOMPRESSED_ATTR_RO(bm_interface_flags, bmInterfaceFlags, 8);
+UVCG_UNCOMPRESSED_ATTR_RO(bm_interlace_flags, bmInterlaceFlags, 8);
#undef UVCG_UNCOMPRESSED_ATTR
#undef UVCG_UNCOMPRESSED_ATTR_RO
@@ -1541,7 +1541,7 @@
&uvcg_uncompressed_attr_b_default_frame_index,
&uvcg_uncompressed_attr_b_aspect_ratio_x,
&uvcg_uncompressed_attr_b_aspect_ratio_y,
- &uvcg_uncompressed_attr_bm_interface_flags,
+ &uvcg_uncompressed_attr_bm_interlace_flags,
&uvcg_uncompressed_attr_bma_controls,
NULL,
};
@@ -1574,7 +1574,7 @@
h->desc.bDefaultFrameIndex = 1;
h->desc.bAspectRatioX = 0;
h->desc.bAspectRatioY = 0;
- h->desc.bmInterfaceFlags = 0;
+ h->desc.bmInterlaceFlags = 0;
h->desc.bCopyProtect = 0;
INIT_LIST_HEAD(&h->fmt.frames);
@@ -1700,7 +1700,7 @@
UVCG_MJPEG_ATTR_RO(bm_flags, bmFlags, 8);
UVCG_MJPEG_ATTR_RO(b_aspect_ratio_x, bAspectRatioX, 8);
UVCG_MJPEG_ATTR_RO(b_aspect_ratio_y, bAspectRatioY, 8);
-UVCG_MJPEG_ATTR_RO(bm_interface_flags, bmInterfaceFlags, 8);
+UVCG_MJPEG_ATTR_RO(bm_interlace_flags, bmInterlaceFlags, 8);
#undef UVCG_MJPEG_ATTR
#undef UVCG_MJPEG_ATTR_RO
@@ -1728,7 +1728,7 @@
&uvcg_mjpeg_attr_bm_flags,
&uvcg_mjpeg_attr_b_aspect_ratio_x,
&uvcg_mjpeg_attr_b_aspect_ratio_y,
- &uvcg_mjpeg_attr_bm_interface_flags,
+ &uvcg_mjpeg_attr_bm_interlace_flags,
&uvcg_mjpeg_attr_bma_controls,
NULL,
};
@@ -1755,7 +1755,7 @@
h->desc.bDefaultFrameIndex = 1;
h->desc.bAspectRatioX = 0;
h->desc.bAspectRatioY = 0;
- h->desc.bmInterfaceFlags = 0;
+ h->desc.bmInterlaceFlags = 0;
h->desc.bCopyProtect = 0;
INIT_LIST_HEAD(&h->fmt.frames);
diff --git a/drivers/usb/gadget/legacy/webcam.c b/drivers/usb/gadget/legacy/webcam.c
index e9b5846..c06dd1a 100644
--- a/drivers/usb/gadget/legacy/webcam.c
+++ b/drivers/usb/gadget/legacy/webcam.c
@@ -171,7 +171,7 @@
.bDefaultFrameIndex = 1,
.bAspectRatioX = 0,
.bAspectRatioY = 0,
- .bmInterfaceFlags = 0,
+ .bmInterlaceFlags = 0,
.bCopyProtect = 0,
};
@@ -222,7 +222,7 @@
.bDefaultFrameIndex = 1,
.bAspectRatioX = 0,
.bAspectRatioY = 0,
- .bmInterfaceFlags = 0,
+ .bmInterlaceFlags = 0,
.bCopyProtect = 0,
};
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 30379c3..ebc4590 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -2182,7 +2182,7 @@
* The number of segs are recored into ELF header as 16bit value.
* Please check DEFAULT_MAX_MAP_COUNT definition when you modify here.
*/
- segs = cprm->vma_count + elf_core_extra_phdrs();
+ segs = cprm->vma_count + elf_core_extra_phdrs(cprm);
/* for notes section */
segs++;
@@ -2222,7 +2222,7 @@
dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
offset += cprm->vma_data_size;
- offset += elf_core_extra_data_size();
+ offset += elf_core_extra_data_size(cprm);
e_shoff = offset;
if (e_phnum == PN_XNUM) {
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index c316931..766e5e2 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -1509,7 +1509,7 @@
tmp->next = thread_list;
thread_list = tmp;
- segs = cprm->vma_count + elf_core_extra_phdrs();
+ segs = cprm->vma_count + elf_core_extra_phdrs(cprm);
/* for notes section */
segs++;
@@ -1555,7 +1555,7 @@
dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
offset += cprm->vma_data_size;
- offset += elf_core_extra_data_size();
+ offset += elf_core_extra_data_size(cprm);
e_shoff = offset;
if (e_phnum == PN_XNUM) {
diff --git a/fs/erofs/Kconfig b/fs/erofs/Kconfig
index f57255a..dd99f06 100644
--- a/fs/erofs/Kconfig
+++ b/fs/erofs/Kconfig
@@ -98,3 +98,21 @@
systems will be readable without selecting this option.
If unsure, say N.
+
+config EROFS_FS_PCPU_KTHREAD
+ bool "EROFS per-cpu decompression kthread workers"
+ depends on EROFS_FS_ZIP
+ help
+ Saying Y here enables per-CPU kthread workers pool to carry out
+ async decompression for low latencies on some architectures.
+
+ If unsure, say N.
+
+config EROFS_FS_PCPU_KTHREAD_HIPRI
+ bool "EROFS high priority per-CPU kthread workers"
+ depends on EROFS_FS_ZIP && EROFS_FS_PCPU_KTHREAD
+ help
+ This permits EROFS to configure per-CPU kthread workers to run
+ at higher priority.
+
+ If unsure, say N.
diff --git a/fs/erofs/zdata.c b/fs/erofs/zdata.c
index a634922..6b5bb7c 100644
--- a/fs/erofs/zdata.c
+++ b/fs/erofs/zdata.c
@@ -6,7 +6,7 @@
#include "zdata.h"
#include "compress.h"
#include <linux/prefetch.h>
-
+#include <linux/cpuhotplug.h>
#include <trace/events/erofs.h>
/*
@@ -117,24 +117,128 @@
static struct workqueue_struct *z_erofs_workqueue __read_mostly;
-void z_erofs_exit_zip_subsystem(void)
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+static struct kthread_worker __rcu **z_erofs_pcpu_workers;
+
+static void erofs_destroy_percpu_workers(void)
{
- destroy_workqueue(z_erofs_workqueue);
- z_erofs_destroy_pcluster_pool();
+ struct kthread_worker *worker;
+ unsigned int cpu;
+
+ for_each_possible_cpu(cpu) {
+ worker = rcu_dereference_protected(
+ z_erofs_pcpu_workers[cpu], 1);
+ rcu_assign_pointer(z_erofs_pcpu_workers[cpu], NULL);
+ if (worker)
+ kthread_destroy_worker(worker);
+ }
+ kfree(z_erofs_pcpu_workers);
}
-static inline int z_erofs_init_workqueue(void)
+static struct kthread_worker *erofs_init_percpu_worker(int cpu)
{
- const unsigned int onlinecpus = num_possible_cpus();
+ struct kthread_worker *worker =
+ kthread_create_worker_on_cpu(cpu, 0, "erofs_worker/%u", cpu);
- /*
- * no need to spawn too many threads, limiting threads could minimum
- * scheduling overhead, perhaps per-CPU threads should be better?
- */
- z_erofs_workqueue = alloc_workqueue("erofs_unzipd",
- WQ_UNBOUND | WQ_HIGHPRI,
- onlinecpus + onlinecpus / 4);
- return z_erofs_workqueue ? 0 : -ENOMEM;
+ if (IS_ERR(worker))
+ return worker;
+ if (IS_ENABLED(CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI))
+ sched_set_fifo_low(worker->task);
+ else
+ sched_set_normal(worker->task, 0);
+ return worker;
+}
+
+static int erofs_init_percpu_workers(void)
+{
+ struct kthread_worker *worker;
+ unsigned int cpu;
+
+ z_erofs_pcpu_workers = kcalloc(num_possible_cpus(),
+ sizeof(struct kthread_worker *), GFP_ATOMIC);
+ if (!z_erofs_pcpu_workers)
+ return -ENOMEM;
+
+ for_each_online_cpu(cpu) { /* could miss cpu{off,on}line? */
+ worker = erofs_init_percpu_worker(cpu);
+ if (!IS_ERR(worker))
+ rcu_assign_pointer(z_erofs_pcpu_workers[cpu], worker);
+ }
+ return 0;
+}
+#else
+static inline void erofs_destroy_percpu_workers(void) {}
+static inline int erofs_init_percpu_workers(void) { return 0; }
+#endif
+
+#if defined(CONFIG_HOTPLUG_CPU) && defined(CONFIG_EROFS_FS_PCPU_KTHREAD)
+static DEFINE_SPINLOCK(z_erofs_pcpu_worker_lock);
+static enum cpuhp_state erofs_cpuhp_state;
+
+static int erofs_cpu_online(unsigned int cpu)
+{
+ struct kthread_worker *worker, *old;
+
+ worker = erofs_init_percpu_worker(cpu);
+ if (IS_ERR(worker))
+ return PTR_ERR(worker);
+
+ spin_lock(&z_erofs_pcpu_worker_lock);
+ old = rcu_dereference_protected(z_erofs_pcpu_workers[cpu],
+ lockdep_is_held(&z_erofs_pcpu_worker_lock));
+ if (!old)
+ rcu_assign_pointer(z_erofs_pcpu_workers[cpu], worker);
+ spin_unlock(&z_erofs_pcpu_worker_lock);
+ if (old)
+ kthread_destroy_worker(worker);
+ return 0;
+}
+
+static int erofs_cpu_offline(unsigned int cpu)
+{
+ struct kthread_worker *worker;
+
+ spin_lock(&z_erofs_pcpu_worker_lock);
+ worker = rcu_dereference_protected(z_erofs_pcpu_workers[cpu],
+ lockdep_is_held(&z_erofs_pcpu_worker_lock));
+ rcu_assign_pointer(z_erofs_pcpu_workers[cpu], NULL);
+ spin_unlock(&z_erofs_pcpu_worker_lock);
+
+ synchronize_rcu();
+ if (worker)
+ kthread_destroy_worker(worker);
+ return 0;
+}
+
+static int erofs_cpu_hotplug_init(void)
+{
+ int state;
+
+ state = cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN,
+ "fs/erofs:online", erofs_cpu_online, erofs_cpu_offline);
+ if (state < 0)
+ return state;
+
+ erofs_cpuhp_state = state;
+ return 0;
+}
+
+static void erofs_cpu_hotplug_destroy(void)
+{
+ if (erofs_cpuhp_state)
+ cpuhp_remove_state_nocalls(erofs_cpuhp_state);
+}
+#else /* !CONFIG_HOTPLUG_CPU || !CONFIG_EROFS_FS_PCPU_KTHREAD */
+static inline int erofs_cpu_hotplug_init(void) { return 0; }
+static inline void erofs_cpu_hotplug_destroy(void) {}
+#endif
+
+void z_erofs_exit_zip_subsystem(void)
+{
+ erofs_cpu_hotplug_destroy();
+ erofs_destroy_percpu_workers();
+ destroy_workqueue(z_erofs_workqueue);
+ z_erofs_destroy_pcluster_pool();
}
int __init z_erofs_init_zip_subsystem(void)
@@ -142,10 +246,31 @@
int err = z_erofs_create_pcluster_pool();
if (err)
- return err;
- err = z_erofs_init_workqueue();
+ goto out_error_pcluster_pool;
+
+ z_erofs_workqueue = alloc_workqueue("erofs_worker",
+ WQ_UNBOUND | WQ_HIGHPRI, num_possible_cpus());
+ if (!z_erofs_workqueue) {
+ err = -ENOMEM;
+ goto out_error_workqueue_init;
+ }
+
+ err = erofs_init_percpu_workers();
if (err)
- z_erofs_destroy_pcluster_pool();
+ goto out_error_pcpu_worker;
+
+ err = erofs_cpu_hotplug_init();
+ if (err < 0)
+ goto out_error_cpuhp_init;
+ return err;
+
+out_error_cpuhp_init:
+ erofs_destroy_percpu_workers();
+out_error_pcpu_worker:
+ destroy_workqueue(z_erofs_workqueue);
+out_error_workqueue_init:
+ z_erofs_destroy_pcluster_pool();
+out_error_pcluster_pool:
return err;
}
@@ -763,6 +888,12 @@
}
static void z_erofs_decompressqueue_work(struct work_struct *work);
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+static void z_erofs_decompressqueue_kthread_work(struct kthread_work *work)
+{
+ z_erofs_decompressqueue_work((struct work_struct *)work);
+}
+#endif
static void z_erofs_decompress_kickoff(struct z_erofs_decompressqueue *io,
bool sync, int bios)
{
@@ -780,7 +911,22 @@
return;
/* Use workqueue and sync decompression for atomic contexts only */
if (in_atomic() || irqs_disabled()) {
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+ struct kthread_worker *worker;
+
+ rcu_read_lock();
+ worker = rcu_dereference(
+ z_erofs_pcpu_workers[raw_smp_processor_id()]);
+ if (!worker) {
+ INIT_WORK(&io->u.work, z_erofs_decompressqueue_work);
+ queue_work(z_erofs_workqueue, &io->u.work);
+ } else {
+ kthread_queue_work(worker, &io->u.kthread_work);
+ }
+ rcu_read_unlock();
+#else
queue_work(z_erofs_workqueue, &io->u.work);
+#endif
sbi->opt.readahead_sync_decompress = true;
return;
}
@@ -1049,7 +1195,6 @@
DBG_BUGON(bgq->head == Z_EROFS_PCLUSTER_TAIL_CLOSED);
z_erofs_decompress_queue(bgq, &pagepool);
-
erofs_release_pages(&pagepool);
kvfree(bgq);
}
@@ -1179,7 +1324,12 @@
*fg = true;
goto fg_out;
}
+#ifdef CONFIG_EROFS_FS_PCPU_KTHREAD
+ kthread_init_work(&q->u.kthread_work,
+ z_erofs_decompressqueue_kthread_work);
+#else
INIT_WORK(&q->u.work, z_erofs_decompressqueue_work);
+#endif
} else {
fg_out:
q = fgq;
@@ -1330,7 +1480,7 @@
/*
* although background is preferred, no one is pending for submission.
- * don't issue workqueue for decompression but drop it directly instead.
+ * don't issue decompression but drop it directly instead.
*/
if (!*force_fg && !nr_bios) {
kvfree(q[JQ_SUBMIT]);
diff --git a/fs/erofs/zdata.h b/fs/erofs/zdata.h
index 5e9a0eb..02e26e1 100644
--- a/fs/erofs/zdata.h
+++ b/fs/erofs/zdata.h
@@ -6,6 +6,7 @@
#ifndef __EROFS_FS_ZDATA_H
#define __EROFS_FS_ZDATA_H
+#include <linux/kthread.h>
#include "internal.h"
#include "zpvec.h"
@@ -91,6 +92,7 @@
union {
struct completion done;
struct work_struct work;
+ struct kthread_work kthread_work;
} u;
};
diff --git a/fs/exec.c b/fs/exec.c
index d581d25..3ce0c74 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -1016,7 +1016,6 @@
active_mm = tsk->active_mm;
tsk->active_mm = mm;
tsk->mm = mm;
- lru_gen_add_mm(mm);
/*
* This prevents preemption while active_mm is being loaded and
* it and mm are being updated, which could cause problems for
@@ -1030,6 +1029,7 @@
if (IS_ENABLED(CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM))
local_irq_enable();
tsk->mm->vmacache_seqnum = 0;
+ lru_gen_add_mm(mm);
vmacache_flush(tsk);
task_unlock(tsk);
lru_gen_use_mm(mm);
diff --git a/fs/ext4/block_validity.c b/fs/ext4/block_validity.c
index 4666b55..5504f72 100644
--- a/fs/ext4/block_validity.c
+++ b/fs/ext4/block_validity.c
@@ -292,15 +292,10 @@
call_rcu(&system_blks->rcu, ext4_destroy_system_zone);
}
-/*
- * Returns 1 if the passed-in block region (start_blk,
- * start_blk+count) is valid; 0 if some part of the block region
- * overlaps with some other filesystem metadata blocks.
- */
-int ext4_inode_block_valid(struct inode *inode, ext4_fsblk_t start_blk,
- unsigned int count)
+int ext4_sb_block_valid(struct super_block *sb, struct inode *inode,
+ ext4_fsblk_t start_blk, unsigned int count)
{
- struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
+ struct ext4_sb_info *sbi = EXT4_SB(sb);
struct ext4_system_blocks *system_blks;
struct ext4_system_zone *entry;
struct rb_node *n;
@@ -329,7 +324,9 @@
else if (start_blk >= (entry->start_blk + entry->count))
n = n->rb_right;
else {
- ret = (entry->ino == inode->i_ino);
+ ret = 0;
+ if (inode)
+ ret = (entry->ino == inode->i_ino);
break;
}
}
@@ -338,6 +335,17 @@
return ret;
}
+/*
+ * Returns 1 if the passed-in block region (start_blk,
+ * start_blk+count) is valid; 0 if some part of the block region
+ * overlaps with some other filesystem metadata blocks.
+ */
+int ext4_inode_block_valid(struct inode *inode, ext4_fsblk_t start_blk,
+ unsigned int count)
+{
+ return ext4_sb_block_valid(inode->i_sb, inode, start_blk, count);
+}
+
int ext4_check_blockref(const char *function, unsigned int line,
struct inode *inode, __le32 *p, unsigned int max)
{
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index bc209f3..80f0942 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -3698,6 +3698,9 @@
unsigned int count);
extern int ext4_check_blockref(const char *, unsigned int,
struct inode *, __le32 *, unsigned int);
+extern int ext4_sb_block_valid(struct super_block *sb, struct inode *inode,
+ ext4_fsblk_t start_blk, unsigned int count);
+
/* extents.c */
struct ext4_ext_path;
diff --git a/fs/ext4/fsmap.c b/fs/ext4/fsmap.c
index 4493ef0..cdf9bfe 100644
--- a/fs/ext4/fsmap.c
+++ b/fs/ext4/fsmap.c
@@ -486,6 +486,8 @@
keys[0].fmr_physical = bofs;
if (keys[1].fmr_physical >= eofs)
keys[1].fmr_physical = eofs - 1;
+ if (keys[1].fmr_physical < keys[0].fmr_physical)
+ return 0;
start_fsb = keys[0].fmr_physical;
end_fsb = keys[1].fmr_physical;
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 0c7498a..e6718bf 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -5888,7 +5888,8 @@
}
/**
- * ext4_free_blocks() -- Free given blocks and update quota
+ * ext4_mb_clear_bb() -- helper function for freeing blocks.
+ * Used by ext4_free_blocks()
* @handle: handle for this transaction
* @inode: inode
* @bh: optional buffer of the block to be freed
@@ -5896,9 +5897,9 @@
* @count: number of blocks to be freed
* @flags: flags used by ext4_free_blocks
*/
-void ext4_free_blocks(handle_t *handle, struct inode *inode,
- struct buffer_head *bh, ext4_fsblk_t block,
- unsigned long count, int flags)
+static void ext4_mb_clear_bb(handle_t *handle, struct inode *inode,
+ ext4_fsblk_t block, unsigned long count,
+ int flags)
{
struct buffer_head *bitmap_bh = NULL;
struct super_block *sb = inode->i_sb;
@@ -5915,79 +5916,14 @@
sbi = EXT4_SB(sb);
- if (sbi->s_mount_state & EXT4_FC_REPLAY) {
- ext4_free_blocks_simple(inode, block, count);
- return;
- }
-
- might_sleep();
- if (bh) {
- if (block)
- BUG_ON(block != bh->b_blocknr);
- else
- block = bh->b_blocknr;
- }
-
if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) &&
!ext4_inode_block_valid(inode, block, count)) {
- ext4_error(sb, "Freeing blocks not in datazone - "
- "block = %llu, count = %lu", block, count);
+ ext4_error(sb, "Freeing blocks in system zone - "
+ "Block = %llu, count = %lu", block, count);
+ /* err = 0. ext4_std_error should be a no op */
goto error_return;
}
-
- ext4_debug("freeing block %llu\n", block);
- trace_ext4_free_blocks(inode, block, count, flags);
-
- if (bh && (flags & EXT4_FREE_BLOCKS_FORGET)) {
- BUG_ON(count > 1);
-
- ext4_forget(handle, flags & EXT4_FREE_BLOCKS_METADATA,
- inode, bh, block);
- }
-
- /*
- * If the extent to be freed does not begin on a cluster
- * boundary, we need to deal with partial clusters at the
- * beginning and end of the extent. Normally we will free
- * blocks at the beginning or the end unless we are explicitly
- * requested to avoid doing so.
- */
- overflow = EXT4_PBLK_COFF(sbi, block);
- if (overflow) {
- if (flags & EXT4_FREE_BLOCKS_NOFREE_FIRST_CLUSTER) {
- overflow = sbi->s_cluster_ratio - overflow;
- block += overflow;
- if (count > overflow)
- count -= overflow;
- else
- return;
- } else {
- block -= overflow;
- count += overflow;
- }
- }
- overflow = EXT4_LBLK_COFF(sbi, count);
- if (overflow) {
- if (flags & EXT4_FREE_BLOCKS_NOFREE_LAST_CLUSTER) {
- if (count > overflow)
- count -= overflow;
- else
- return;
- } else
- count += sbi->s_cluster_ratio - overflow;
- }
-
- if (!bh && (flags & EXT4_FREE_BLOCKS_FORGET)) {
- int i;
- int is_metadata = flags & EXT4_FREE_BLOCKS_METADATA;
-
- for (i = 0; i < count; i++) {
- cond_resched();
- if (is_metadata)
- bh = sb_find_get_block(inode->i_sb, block + i);
- ext4_forget(handle, is_metadata, inode, bh, block + i);
- }
- }
+ flags |= EXT4_FREE_BLOCKS_VALIDATED;
do_more:
overflow = 0;
@@ -6005,6 +5941,8 @@
overflow = EXT4_C2B(sbi, bit) + count -
EXT4_BLOCKS_PER_GROUP(sb);
count -= overflow;
+ /* The range changed so it's no longer validated */
+ flags &= ~EXT4_FREE_BLOCKS_VALIDATED;
}
count_clusters = EXT4_NUM_B2C(sbi, count);
bitmap_bh = ext4_read_block_bitmap(sb, block_group);
@@ -6019,13 +5957,8 @@
goto error_return;
}
- if (in_range(ext4_block_bitmap(sb, gdp), block, count) ||
- in_range(ext4_inode_bitmap(sb, gdp), block, count) ||
- in_range(block, ext4_inode_table(sb, gdp),
- sbi->s_itb_per_group) ||
- in_range(block + count - 1, ext4_inode_table(sb, gdp),
- sbi->s_itb_per_group)) {
-
+ if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) &&
+ !ext4_inode_block_valid(inode, block, count)) {
ext4_error(sb, "Freeing blocks in system zone - "
"Block = %llu, count = %lu", block, count);
/* err = 0. ext4_std_error should be a no op */
@@ -6096,7 +6029,7 @@
NULL);
if (err && err != -EOPNOTSUPP)
ext4_msg(sb, KERN_WARNING, "discard request in"
- " group:%d block:%d count:%lu failed"
+ " group:%u block:%d count:%lu failed"
" with %d", block_group, bit, count,
err);
} else
@@ -6148,6 +6081,8 @@
block += count;
count = overflow;
put_bh(bitmap_bh);
+ /* The range changed so it's no longer validated */
+ flags &= ~EXT4_FREE_BLOCKS_VALIDATED;
goto do_more;
}
error_return:
@@ -6157,6 +6092,108 @@
}
/**
+ * ext4_free_blocks() -- Free given blocks and update quota
+ * @handle: handle for this transaction
+ * @inode: inode
+ * @bh: optional buffer of the block to be freed
+ * @block: starting physical block to be freed
+ * @count: number of blocks to be freed
+ * @flags: flags used by ext4_free_blocks
+ */
+void ext4_free_blocks(handle_t *handle, struct inode *inode,
+ struct buffer_head *bh, ext4_fsblk_t block,
+ unsigned long count, int flags)
+{
+ struct super_block *sb = inode->i_sb;
+ unsigned int overflow;
+ struct ext4_sb_info *sbi;
+
+ sbi = EXT4_SB(sb);
+
+ if (sbi->s_mount_state & EXT4_FC_REPLAY) {
+ ext4_free_blocks_simple(inode, block, count);
+ return;
+ }
+
+ might_sleep();
+ if (bh) {
+ if (block)
+ BUG_ON(block != bh->b_blocknr);
+ else
+ block = bh->b_blocknr;
+ }
+
+ if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) &&
+ !ext4_inode_block_valid(inode, block, count)) {
+ ext4_error(sb, "Freeing blocks not in datazone - "
+ "block = %llu, count = %lu", block, count);
+ return;
+ }
+ flags |= EXT4_FREE_BLOCKS_VALIDATED;
+
+ ext4_debug("freeing block %llu\n", block);
+ trace_ext4_free_blocks(inode, block, count, flags);
+
+ if (bh && (flags & EXT4_FREE_BLOCKS_FORGET)) {
+ BUG_ON(count > 1);
+
+ ext4_forget(handle, flags & EXT4_FREE_BLOCKS_METADATA,
+ inode, bh, block);
+ }
+
+ /*
+ * If the extent to be freed does not begin on a cluster
+ * boundary, we need to deal with partial clusters at the
+ * beginning and end of the extent. Normally we will free
+ * blocks at the beginning or the end unless we are explicitly
+ * requested to avoid doing so.
+ */
+ overflow = EXT4_PBLK_COFF(sbi, block);
+ if (overflow) {
+ if (flags & EXT4_FREE_BLOCKS_NOFREE_FIRST_CLUSTER) {
+ overflow = sbi->s_cluster_ratio - overflow;
+ block += overflow;
+ if (count > overflow)
+ count -= overflow;
+ else
+ return;
+ } else {
+ block -= overflow;
+ count += overflow;
+ }
+ /* The range changed so it's no longer validated */
+ flags &= ~EXT4_FREE_BLOCKS_VALIDATED;
+ }
+ overflow = EXT4_LBLK_COFF(sbi, count);
+ if (overflow) {
+ if (flags & EXT4_FREE_BLOCKS_NOFREE_LAST_CLUSTER) {
+ if (count > overflow)
+ count -= overflow;
+ else
+ return;
+ } else
+ count += sbi->s_cluster_ratio - overflow;
+ /* The range changed so it's no longer validated */
+ flags &= ~EXT4_FREE_BLOCKS_VALIDATED;
+ }
+
+ if (!bh && (flags & EXT4_FREE_BLOCKS_FORGET)) {
+ int i;
+ int is_metadata = flags & EXT4_FREE_BLOCKS_METADATA;
+
+ for (i = 0; i < count; i++) {
+ cond_resched();
+ if (is_metadata)
+ bh = sb_find_get_block(inode->i_sb, block + i);
+ ext4_forget(handle, is_metadata, inode, bh, block + i);
+ }
+ }
+
+ ext4_mb_clear_bb(handle, inode, block, count, flags);
+ return;
+}
+
+/**
* ext4_group_add_blocks() -- Add given blocks to an existing group
* @handle: handle to this transaction
* @sb: super block
@@ -6212,11 +6249,7 @@
goto error_return;
}
- if (in_range(ext4_block_bitmap(sb, desc), block, count) ||
- in_range(ext4_inode_bitmap(sb, desc), block, count) ||
- in_range(block, ext4_inode_table(sb, desc), sbi->s_itb_per_group) ||
- in_range(block + count - 1, ext4_inode_table(sb, desc),
- sbi->s_itb_per_group)) {
+ if (!ext4_sb_block_valid(sb, NULL, block, count)) {
ext4_error(sb, "Adding blocks in system zones - "
"Block = %llu, count = %lu",
block, count);
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
index b92da41..d6edf38 100644
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -1422,6 +1422,13 @@
uid_t owner[2] = { i_uid_read(inode), i_gid_read(inode) };
int err;
+ if (inode->i_sb->s_root == NULL) {
+ ext4_warning(inode->i_sb,
+ "refuse to create EA inode when umounting");
+ WARN_ON(1);
+ return ERR_PTR(-EINVAL);
+ }
+
/*
* Let the next inode be the goal, so we try and allocate the EA inode
* in the same group, or nearby one.
@@ -2549,9 +2556,8 @@
is = kzalloc(sizeof(struct ext4_xattr_ibody_find), GFP_NOFS);
bs = kzalloc(sizeof(struct ext4_xattr_block_find), GFP_NOFS);
- buffer = kvmalloc(value_size, GFP_NOFS);
b_entry_name = kmalloc(entry->e_name_len + 1, GFP_NOFS);
- if (!is || !bs || !buffer || !b_entry_name) {
+ if (!is || !bs || !b_entry_name) {
error = -ENOMEM;
goto out;
}
@@ -2563,12 +2569,18 @@
/* Save the entry name and the entry value */
if (entry->e_value_inum) {
+ buffer = kvmalloc(value_size, GFP_NOFS);
+ if (!buffer) {
+ error = -ENOMEM;
+ goto out;
+ }
+
error = ext4_xattr_inode_get(inode, entry, buffer, value_size);
if (error)
goto out;
} else {
size_t value_offs = le16_to_cpu(entry->e_value_offs);
- memcpy(buffer, (void *)IFIRST(header) + value_offs, value_size);
+ buffer = (void *)IFIRST(header) + value_offs;
}
memcpy(b_entry_name, entry->e_name, entry->e_name_len);
@@ -2583,25 +2595,26 @@
if (error)
goto out;
- /* Remove the chosen entry from the inode */
- error = ext4_xattr_ibody_set(handle, inode, &i, is);
- if (error)
- goto out;
-
i.value = buffer;
i.value_len = value_size;
error = ext4_xattr_block_find(inode, &i, bs);
if (error)
goto out;
- /* Add entry which was removed from the inode into the block */
+ /* Move ea entry from the inode into the block */
error = ext4_xattr_block_set(handle, inode, &i, bs);
if (error)
goto out;
- error = 0;
+
+ /* Remove the chosen entry from the inode */
+ i.value = NULL;
+ i.value_len = 0;
+ error = ext4_xattr_ibody_set(handle, inode, &i, is);
+
out:
kfree(b_entry_name);
- kvfree(buffer);
+ if (entry->e_value_inum && buffer)
+ kvfree(buffer);
if (is)
brelse(is->iloc.bh);
if (bs)
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index b3a4e5c..e8c872d 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -92,16 +92,6 @@
* invalidated soon after by user update or deletion.
* So, I'd like to wait some time to collect dirty segments.
*/
- if (sbi->gc_mode == GC_URGENT_HIGH) {
- spin_lock(&sbi->gc_urgent_high_lock);
- if (sbi->gc_urgent_high_remaining) {
- sbi->gc_urgent_high_remaining--;
- if (!sbi->gc_urgent_high_remaining)
- sbi->gc_mode = GC_NORMAL;
- }
- spin_unlock(&sbi->gc_urgent_high_lock);
- }
-
if (sbi->gc_mode == GC_URGENT_HIGH ||
sbi->gc_mode == GC_URGENT_MID) {
wait_ms = gc_th->urgent_sleep_time;
@@ -151,6 +141,15 @@
/* balancing f2fs's metadata periodically */
f2fs_balance_fs_bg(sbi, true);
next:
+ if (sbi->gc_mode == GC_URGENT_HIGH) {
+ spin_lock(&sbi->gc_urgent_high_lock);
+ if (sbi->gc_urgent_high_remaining) {
+ sbi->gc_urgent_high_remaining--;
+ if (!sbi->gc_urgent_high_remaining)
+ sbi->gc_mode = GC_NORMAL;
+ }
+ spin_unlock(&sbi->gc_urgent_high_lock);
+ }
sb_end_write(sbi->sb);
} while (!kthread_should_stop());
diff --git a/fs/fuse/Kconfig b/fs/fuse/Kconfig
index 40ce9a1..d6bd90b5 100644
--- a/fs/fuse/Kconfig
+++ b/fs/fuse/Kconfig
@@ -52,3 +52,11 @@
If you want to allow mounting a Virtio Filesystem with the "dax"
option, answer Y.
+
+config FUSE_BPF
+ bool "Adds BPF to fuse"
+ depends on FUSE_FS
+ depends on BPF
+ help
+ Extends FUSE by adding BPF to prefilter calls and potentially pass to a
+ backing file system
diff --git a/fs/fuse/Makefile b/fs/fuse/Makefile
index d9e1b47..096bd78 100644
--- a/fs/fuse/Makefile
+++ b/fs/fuse/Makefile
@@ -10,5 +10,6 @@
fuse-y := dev.o dir.o file.o inode.o control.o xattr.o acl.o readdir.o ioctl.o
fuse-y += passthrough.o
fuse-$(CONFIG_FUSE_DAX) += dax.o
+fuse-$(CONFIG_FUSE_BPF) += backing.o
virtiofs-y := virtio_fs.o
diff --git a/fs/fuse/backing.c b/fs/fuse/backing.c
new file mode 100644
index 0000000..5665ff7
--- /dev/null
+++ b/fs/fuse/backing.c
@@ -0,0 +1,2473 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * FUSE-BPF: Filesystem in Userspace with BPF
+ * Copyright (c) 2021 Google LLC
+ */
+
+#include "fuse_i.h"
+
+#include <linux/fdtable.h>
+#include <linux/filter.h>
+#include <linux/fs_stack.h>
+#include <linux/namei.h>
+
+#include "../internal.h"
+
+#define FUSE_BPF_IOCB_MASK (IOCB_APPEND | IOCB_DSYNC | IOCB_HIPRI | IOCB_NOWAIT | IOCB_SYNC)
+
+struct fuse_bpf_aio_req {
+ struct kiocb iocb;
+ refcount_t ref;
+ struct kiocb *iocb_orig;
+};
+
+static struct kmem_cache *fuse_bpf_aio_request_cachep;
+
+static void fuse_stat_to_attr(struct fuse_conn *fc, struct inode *inode,
+ struct kstat *stat, struct fuse_attr *attr);
+
+static void fuse_file_accessed(struct file *dst_file, struct file *src_file)
+{
+ struct inode *dst_inode;
+ struct inode *src_inode;
+
+ if (dst_file->f_flags & O_NOATIME)
+ return;
+
+ dst_inode = file_inode(dst_file);
+ src_inode = file_inode(src_file);
+
+ if ((!timespec64_equal(&dst_inode->i_mtime, &src_inode->i_mtime) ||
+ !timespec64_equal(&dst_inode->i_ctime, &src_inode->i_ctime))) {
+ dst_inode->i_mtime = src_inode->i_mtime;
+ dst_inode->i_ctime = src_inode->i_ctime;
+ }
+
+ touch_atime(&dst_file->f_path);
+}
+
+int fuse_open_initialize(struct fuse_bpf_args *fa, struct fuse_open_io *foio,
+ struct inode *inode, struct file *file, bool isdir)
+{
+ foio->foi = (struct fuse_open_in) {
+ .flags = file->f_flags & ~(O_CREAT | O_EXCL | O_NOCTTY),
+ };
+
+ foio->foo = (struct fuse_open_out) {0};
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_fuse_inode(inode)->nodeid,
+ .opcode = isdir ? FUSE_OPENDIR : FUSE_OPEN,
+ .in_numargs = 1,
+ .out_numargs = 1,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = sizeof(foio->foi),
+ .value = &foio->foi,
+ },
+ .out_args[0] = (struct fuse_bpf_arg) {
+ .size = sizeof(foio->foo),
+ .value = &foio->foo,
+ },
+ };
+
+ return 0;
+}
+
+int fuse_open_backing(struct fuse_bpf_args *fa,
+ struct inode *inode, struct file *file, bool isdir)
+{
+ struct fuse_mount *fm = get_fuse_mount(inode);
+ const struct fuse_open_in *foi = fa->in_args[0].value;
+ struct fuse_file *ff;
+ int retval;
+ int mask;
+ struct fuse_dentry *fd = get_fuse_dentry(file->f_path.dentry);
+ struct file *backing_file;
+
+ ff = fuse_file_alloc(fm);
+ if (!ff)
+ return -ENOMEM;
+ file->private_data = ff;
+
+ switch (foi->flags & O_ACCMODE) {
+ case O_RDONLY:
+ mask = MAY_READ;
+ break;
+
+ case O_WRONLY:
+ mask = MAY_WRITE;
+ break;
+
+ case O_RDWR:
+ mask = MAY_READ | MAY_WRITE;
+ break;
+
+ default:
+ return -EINVAL;
+ }
+
+ retval = inode_permission(&init_user_ns,
+ get_fuse_inode(inode)->backing_inode, mask);
+ if (retval)
+ return retval;
+
+ backing_file = dentry_open(&fd->backing_path,
+ foi->flags,
+ current_cred());
+
+ if (IS_ERR(backing_file)) {
+ fuse_file_free(ff);
+ file->private_data = NULL;
+ return PTR_ERR(backing_file);
+ }
+ ff->backing_file = backing_file;
+
+ return 0;
+}
+
+void *fuse_open_finalize(struct fuse_bpf_args *fa,
+ struct inode *inode, struct file *file, bool isdir)
+{
+ struct fuse_file *ff = file->private_data;
+ struct fuse_open_out *foo = fa->out_args[0].value;
+
+ if (ff) {
+ ff->fh = foo->fh;
+ ff->nodeid = get_fuse_inode(inode)->nodeid;
+ }
+ return 0;
+}
+
+int fuse_create_open_initialize(
+ struct fuse_bpf_args *fa, struct fuse_create_open_io *fcoio,
+ struct inode *dir, struct dentry *entry,
+ struct file *file, unsigned int flags, umode_t mode)
+{
+ fcoio->fci = (struct fuse_create_in) {
+ .flags = file->f_flags & ~(O_CREAT | O_EXCL | O_NOCTTY),
+ .mode = mode,
+ };
+
+ fcoio->feo = (struct fuse_entry_out) {0};
+ fcoio->foo = (struct fuse_open_out) {0};
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(dir),
+ .opcode = FUSE_CREATE,
+ .in_numargs = 2,
+ .out_numargs = 2,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = sizeof(fcoio->fci),
+ .value = &fcoio->fci,
+ },
+ .in_args[1] = (struct fuse_bpf_in_arg) {
+ .size = entry->d_name.len + 1,
+ .value = entry->d_name.name,
+ },
+ .out_args[0] = (struct fuse_bpf_arg) {
+ .size = sizeof(fcoio->feo),
+ .value = &fcoio->feo,
+ },
+ .out_args[1] = (struct fuse_bpf_arg) {
+ .size = sizeof(fcoio->foo),
+ .value = &fcoio->foo,
+ },
+ };
+
+ return 0;
+}
+
+static int fuse_open_file_backing(struct inode *inode, struct file *file)
+{
+ struct fuse_mount *fm = get_fuse_mount(inode);
+ struct dentry *entry = file->f_path.dentry;
+ struct fuse_dentry *fuse_dentry = get_fuse_dentry(entry);
+ struct fuse_file *fuse_file;
+ struct file *backing_file;
+
+ fuse_file = fuse_file_alloc(fm);
+ if (!fuse_file)
+ return -ENOMEM;
+ file->private_data = fuse_file;
+
+ backing_file = dentry_open(&fuse_dentry->backing_path, file->f_flags,
+ current_cred());
+ if (IS_ERR(backing_file)) {
+ fuse_file_free(fuse_file);
+ file->private_data = NULL;
+ return PTR_ERR(backing_file);
+ }
+ fuse_file->backing_file = backing_file;
+
+ return 0;
+}
+
+int fuse_create_open_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry,
+ struct file *file, unsigned int flags, umode_t mode)
+{
+ struct fuse_inode *dir_fuse_inode = get_fuse_inode(dir);
+ struct fuse_dentry *dir_fuse_dentry = get_fuse_dentry(entry->d_parent);
+ struct dentry *backing_dentry = NULL;
+ struct inode *inode = NULL;
+ struct dentry *newent;
+ int err = 0;
+ const struct fuse_create_in *fci = fa->in_args[0].value;
+ struct inode *d_inode = entry->d_inode;
+ u64 target_nodeid = 0;
+
+ if (!dir_fuse_inode || !dir_fuse_dentry)
+ return -EIO;
+
+ inode_lock_nested(dir_fuse_inode->backing_inode, I_MUTEX_PARENT);
+ backing_dentry = lookup_one_len(fa->in_args[1].value,
+ dir_fuse_dentry->backing_path.dentry,
+ strlen(fa->in_args[1].value));
+ inode_unlock(dir_fuse_inode->backing_inode);
+
+ if (IS_ERR(backing_dentry))
+ return PTR_ERR(backing_dentry);
+
+ if (d_really_is_positive(backing_dentry)) {
+ err = -EIO;
+ goto out;
+ }
+
+ err = vfs_create(&init_user_ns, dir_fuse_inode->backing_inode,
+ backing_dentry, fci->mode, true);
+ if (err)
+ goto out;
+
+ if (get_fuse_dentry(entry)->backing_path.dentry)
+ path_put(&get_fuse_dentry(entry)->backing_path);
+ get_fuse_dentry(entry)->backing_path = (struct path) {
+ .mnt = dir_fuse_dentry->backing_path.mnt,
+ .dentry = backing_dentry,
+ };
+ path_get(&get_fuse_dentry(entry)->backing_path);
+
+ if (d_inode)
+ target_nodeid = get_fuse_inode(d_inode)->nodeid;
+
+ inode = fuse_iget_backing(dir->i_sb, target_nodeid,
+ get_fuse_dentry(entry)->backing_path.dentry->d_inode);
+ if (IS_ERR(inode)) {
+ err = PTR_ERR(inode);
+ goto out;
+ }
+
+ if (get_fuse_inode(inode)->bpf)
+ bpf_prog_put(get_fuse_inode(inode)->bpf);
+ get_fuse_inode(inode)->bpf = dir_fuse_inode->bpf;
+ if (get_fuse_inode(inode)->bpf)
+ bpf_prog_inc(dir_fuse_inode->bpf);
+
+ newent = d_splice_alias(inode, entry);
+ if (IS_ERR(newent)) {
+ err = PTR_ERR(newent);
+ goto out;
+ }
+
+ entry = newent ? newent : entry;
+ err = finish_open(file, entry, fuse_open_file_backing);
+
+out:
+ dput(backing_dentry);
+ return err;
+}
+
+void *fuse_create_open_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry,
+ struct file *file, unsigned int flags, umode_t mode)
+{
+ struct fuse_file *ff = file->private_data;
+ struct fuse_inode *fi = get_fuse_inode(file->f_inode);
+ struct fuse_entry_out *feo = fa->out_args[0].value;
+ struct fuse_open_out *foo = fa->out_args[1].value;
+
+ if (fi)
+ fi->nodeid = feo->nodeid;
+ if (ff)
+ ff->fh = foo->fh;
+ return 0;
+}
+
+int fuse_release_initialize(struct fuse_bpf_args *fa, struct fuse_release_in *fri,
+ struct inode *inode, struct file *file)
+{
+ struct fuse_file *fuse_file = file->private_data;
+
+ /* Always put backing file whatever bpf/userspace says */
+ fput(fuse_file->backing_file);
+
+ *fri = (struct fuse_release_in) {
+ .fh = ((struct fuse_file *)(file->private_data))->fh,
+ };
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_fuse_inode(inode)->nodeid,
+ .opcode = FUSE_RELEASE,
+ .in_numargs = 1,
+ .in_args[0].size = sizeof(*fri),
+ .in_args[0].value = fri,
+ };
+
+ return 0;
+}
+
+int fuse_releasedir_initialize(struct fuse_bpf_args *fa,
+ struct fuse_release_in *fri,
+ struct inode *inode, struct file *file)
+{
+ struct fuse_file *fuse_file = file->private_data;
+
+ /* Always put backing file whatever bpf/userspace says */
+ fput(fuse_file->backing_file);
+
+ *fri = (struct fuse_release_in) {
+ .fh = ((struct fuse_file *)(file->private_data))->fh,
+ };
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_fuse_inode(inode)->nodeid,
+ .opcode = FUSE_RELEASEDIR,
+ .in_numargs = 1,
+ .in_args[0].size = sizeof(*fri),
+ .in_args[0].value = fri,
+ };
+
+ return 0;
+}
+
+int fuse_release_backing(struct fuse_bpf_args *fa,
+ struct inode *inode, struct file *file)
+{
+ return 0;
+}
+
+void *fuse_release_finalize(struct fuse_bpf_args *fa,
+ struct inode *inode, struct file *file)
+{
+ fuse_file_free(file->private_data);
+ return NULL;
+}
+
+int fuse_flush_initialize(struct fuse_bpf_args *fa, struct fuse_flush_in *ffi,
+ struct file *file, fl_owner_t id)
+{
+ struct fuse_file *fuse_file = file->private_data;
+
+ *ffi = (struct fuse_flush_in) {
+ .fh = fuse_file->fh,
+ };
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(file->f_inode),
+ .opcode = FUSE_FLUSH,
+ .in_numargs = 1,
+ .in_args[0].size = sizeof(*ffi),
+ .in_args[0].value = ffi,
+ .flags = FUSE_BPF_FORCE,
+ };
+
+ return 0;
+}
+
+int fuse_flush_backing(struct fuse_bpf_args *fa, struct file *file, fl_owner_t id)
+{
+ struct fuse_file *fuse_file = file->private_data;
+ struct file *backing_file = fuse_file->backing_file;
+
+ if (backing_file->f_op->flush)
+ return backing_file->f_op->flush(backing_file, id);
+ return 0;
+}
+
+void *fuse_flush_finalize(struct fuse_bpf_args *fa, struct file *file, fl_owner_t id)
+{
+ return NULL;
+}
+
+int fuse_lseek_initialize(struct fuse_bpf_args *fa, struct fuse_lseek_io *flio,
+ struct file *file, loff_t offset, int whence)
+{
+ struct fuse_file *fuse_file = file->private_data;
+
+ flio->fli = (struct fuse_lseek_in) {
+ .fh = fuse_file->fh,
+ .offset = offset,
+ .whence = whence,
+ };
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(file->f_inode),
+ .opcode = FUSE_LSEEK,
+ .in_numargs = 1,
+ .in_args[0].size = sizeof(flio->fli),
+ .in_args[0].value = &flio->fli,
+ .out_numargs = 1,
+ .out_args[0].size = sizeof(flio->flo),
+ .out_args[0].value = &flio->flo,
+ };
+
+ return 0;
+}
+
+int fuse_lseek_backing(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence)
+{
+ const struct fuse_lseek_in *fli = fa->in_args[0].value;
+ struct fuse_lseek_out *flo = fa->out_args[0].value;
+ struct fuse_file *fuse_file = file->private_data;
+ struct file *backing_file = fuse_file->backing_file;
+ loff_t ret;
+
+ /* TODO: Handle changing of the file handle */
+ if (offset == 0) {
+ if (whence == SEEK_CUR) {
+ flo->offset = file->f_pos;
+ return flo->offset;
+ }
+
+ if (whence == SEEK_SET) {
+ flo->offset = vfs_setpos(file, 0, 0);
+ return flo->offset;
+ }
+ }
+
+ inode_lock(file->f_inode);
+ backing_file->f_pos = file->f_pos;
+ ret = vfs_llseek(backing_file, fli->offset, fli->whence);
+ flo->offset = ret;
+ inode_unlock(file->f_inode);
+ return ret;
+}
+
+void *fuse_lseek_finalize(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence)
+{
+ struct fuse_lseek_out *flo = fa->out_args[0].value;
+
+ if (!fa->error_in)
+ file->f_pos = flo->offset;
+ return ERR_PTR(flo->offset);
+}
+
+int fuse_copy_file_range_initialize(struct fuse_bpf_args *fa, struct fuse_copy_file_range_io *fcf,
+ struct file *file_in, loff_t pos_in, struct file *file_out,
+ loff_t pos_out, size_t len, unsigned int flags)
+{
+ struct fuse_file *fuse_file_in = file_in->private_data;
+ struct fuse_file *fuse_file_out = file_out->private_data;
+
+
+ fcf->fci = (struct fuse_copy_file_range_in) {
+ .fh_in = fuse_file_in->fh,
+ .off_in = pos_in,
+ .nodeid_out = fuse_file_out->nodeid,
+ .fh_out = fuse_file_out->fh,
+ .off_out = pos_out,
+ .len = len,
+ .flags = flags,
+ };
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(file_in->f_inode),
+ .opcode = FUSE_COPY_FILE_RANGE,
+ .in_numargs = 1,
+ .in_args[0].size = sizeof(fcf->fci),
+ .in_args[0].value = &fcf->fci,
+ .out_numargs = 1,
+ .out_args[0].size = sizeof(fcf->fwo),
+ .out_args[0].value = &fcf->fwo,
+ };
+
+ return 0;
+}
+
+int fuse_copy_file_range_backing(struct fuse_bpf_args *fa, struct file *file_in, loff_t pos_in,
+ struct file *file_out, loff_t pos_out, size_t len,
+ unsigned int flags)
+{
+ const struct fuse_copy_file_range_in *fci = fa->in_args[0].value;
+ struct fuse_file *fuse_file_in = file_in->private_data;
+ struct file *backing_file_in = fuse_file_in->backing_file;
+ struct fuse_file *fuse_file_out = file_out->private_data;
+ struct file *backing_file_out = fuse_file_out->backing_file;
+
+ /* TODO: Handle changing of in/out files */
+ if (backing_file_out)
+ return vfs_copy_file_range(backing_file_in, fci->off_in, backing_file_out,
+ fci->off_out, fci->len, fci->flags);
+ else
+ return generic_copy_file_range(file_in, pos_in, file_out, pos_out, len,
+ flags);
+}
+
+void *fuse_copy_file_range_finalize(struct fuse_bpf_args *fa, struct file *file_in, loff_t pos_in,
+ struct file *file_out, loff_t pos_out, size_t len,
+ unsigned int flags)
+{
+ return NULL;
+}
+
+int fuse_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+ struct file *file, loff_t start, loff_t end, int datasync)
+{
+ struct fuse_file *fuse_file = file->private_data;
+
+ *ffi = (struct fuse_fsync_in) {
+ .fh = fuse_file->fh,
+ .fsync_flags = datasync ? FUSE_FSYNC_FDATASYNC : 0,
+ };
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_fuse_inode(file->f_inode)->nodeid,
+ .opcode = FUSE_FSYNC,
+ .in_numargs = 1,
+ .in_args[0].size = sizeof(*ffi),
+ .in_args[0].value = ffi,
+ .flags = FUSE_BPF_FORCE,
+ };
+
+ return 0;
+}
+
+int fuse_fsync_backing(struct fuse_bpf_args *fa,
+ struct file *file, loff_t start, loff_t end, int datasync)
+{
+ struct fuse_file *fuse_file = file->private_data;
+ struct file *backing_file = fuse_file->backing_file;
+ const struct fuse_fsync_in *ffi = fa->in_args[0].value;
+ int new_datasync = (ffi->fsync_flags & FUSE_FSYNC_FDATASYNC) ? 1 : 0;
+
+ return vfs_fsync(backing_file, new_datasync);
+}
+
+void *fuse_fsync_finalize(struct fuse_bpf_args *fa,
+ struct file *file, loff_t start, loff_t end, int datasync)
+{
+ return NULL;
+}
+
+int fuse_dir_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+ struct file *file, loff_t start, loff_t end, int datasync)
+{
+ struct fuse_file *fuse_file = file->private_data;
+
+ *ffi = (struct fuse_fsync_in) {
+ .fh = fuse_file->fh,
+ .fsync_flags = datasync ? FUSE_FSYNC_FDATASYNC : 0,
+ };
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_fuse_inode(file->f_inode)->nodeid,
+ .opcode = FUSE_FSYNCDIR,
+ .in_numargs = 1,
+ .in_args[0].size = sizeof(*ffi),
+ .in_args[0].value = ffi,
+ .flags = FUSE_BPF_FORCE,
+ };
+
+ return 0;
+}
+
+int fuse_getxattr_initialize(struct fuse_bpf_args *fa,
+ struct fuse_getxattr_io *fgio,
+ struct dentry *dentry, const char *name, void *value,
+ size_t size)
+{
+ *fgio = (struct fuse_getxattr_io) {
+ .fgi.size = size,
+ };
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+ .opcode = FUSE_GETXATTR,
+ .in_numargs = 2,
+ .out_numargs = 1,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = sizeof(fgio->fgi),
+ .value = &fgio->fgi,
+ },
+ .in_args[1] = (struct fuse_bpf_in_arg) {
+ .size = strlen(name) + 1,
+ .value = name,
+ },
+ .flags = size ? FUSE_BPF_OUT_ARGVAR : 0,
+ .out_args[0].size = size ? size : sizeof(fgio->fgo),
+ .out_args[0].value = size ? value : &fgio->fgo,
+ };
+ return 0;
+}
+
+int fuse_getxattr_backing(struct fuse_bpf_args *fa,
+ struct dentry *dentry, const char *name, void *value,
+ size_t size)
+{
+ ssize_t ret = vfs_getxattr(&init_user_ns,
+ get_fuse_dentry(dentry)->backing_path.dentry,
+ fa->in_args[1].value, value, size);
+
+ if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+ fa->out_args[0].size = ret;
+ else
+ ((struct fuse_getxattr_out *)fa->out_args[0].value)->size = ret;
+
+ return 0;
+}
+
+void *fuse_getxattr_finalize(struct fuse_bpf_args *fa,
+ struct dentry *dentry, const char *name, void *value,
+ size_t size)
+{
+ struct fuse_getxattr_out *fgo;
+
+ if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+ return ERR_PTR(fa->out_args[0].size);
+
+ fgo = fa->out_args[0].value;
+
+ return ERR_PTR(fgo->size);
+
+}
+
+int fuse_listxattr_initialize(struct fuse_bpf_args *fa,
+ struct fuse_getxattr_io *fgio,
+ struct dentry *dentry, char *list, size_t size)
+{
+ *fgio = (struct fuse_getxattr_io){
+ .fgi.size = size,
+ };
+
+ *fa = (struct fuse_bpf_args){
+ .nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+ .opcode = FUSE_LISTXATTR,
+ .in_numargs = 1,
+ .out_numargs = 1,
+ .in_args[0] =
+ (struct fuse_bpf_in_arg){
+ .size = sizeof(fgio->fgi),
+ .value = &fgio->fgi,
+ },
+ .flags = size ? FUSE_BPF_OUT_ARGVAR : 0,
+ .out_args[0].size = size ? size : sizeof(fgio->fgo),
+ .out_args[0].value = size ? (void *)list : &fgio->fgo,
+ };
+
+ return 0;
+}
+
+int fuse_listxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+ char *list, size_t size)
+{
+ ssize_t ret =
+ vfs_listxattr(get_fuse_dentry(dentry)->backing_path.dentry,
+ list, size);
+
+ if (ret < 0)
+ return ret;
+
+ if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+ fa->out_args[0].size = ret;
+ else
+ ((struct fuse_getxattr_out *)fa->out_args[0].value)->size = ret;
+
+ return ret;
+}
+
+void *fuse_listxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+ char *list, size_t size)
+{
+ struct fuse_getxattr_out *fgo;
+
+ if (fa->error_in)
+ return NULL;
+
+ if (fa->flags & FUSE_BPF_OUT_ARGVAR)
+ return ERR_PTR(fa->out_args[0].size);
+
+ fgo = fa->out_args[0].value;
+ return ERR_PTR(fgo->size);
+}
+
+int fuse_setxattr_initialize(struct fuse_bpf_args *fa,
+ struct fuse_setxattr_in *fsxi,
+ struct dentry *dentry, const char *name,
+ const void *value, size_t size, int flags)
+{
+ *fsxi = (struct fuse_setxattr_in) {
+ .size = size,
+ .flags = flags,
+ };
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+ .opcode = FUSE_SETXATTR,
+ .in_numargs = 3,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = sizeof(*fsxi),
+ .value = fsxi,
+ },
+ .in_args[1] = (struct fuse_bpf_in_arg) {
+ .size = strlen(name) + 1,
+ .value = name,
+ },
+ .in_args[2] = (struct fuse_bpf_in_arg) {
+ .size = size,
+ .value = value,
+ },
+ };
+
+ return 0;
+}
+
+int fuse_setxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+ const char *name, const void *value, size_t size,
+ int flags)
+{
+ return vfs_setxattr(&init_user_ns,
+ get_fuse_dentry(dentry)->backing_path.dentry, name,
+ value, size, flags);
+}
+
+void *fuse_setxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+ const char *name, const void *value, size_t size,
+ int flags)
+{
+ return NULL;
+}
+
+int fuse_removexattr_initialize(struct fuse_bpf_args *fa,
+ struct fuse_dummy_io *unused,
+ struct dentry *dentry, const char *name)
+{
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_fuse_inode(dentry->d_inode)->nodeid,
+ .opcode = FUSE_REMOVEXATTR,
+ .in_numargs = 1,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = strlen(name) + 1,
+ .value = name,
+ },
+ };
+
+ return 0;
+}
+
+int fuse_removexattr_backing(struct fuse_bpf_args *fa,
+ struct dentry *dentry, const char *name)
+{
+ struct path *backing_path =
+ &get_fuse_dentry(dentry)->backing_path;
+
+ /* TODO account for changes of the name by prefilter */
+ return vfs_removexattr(&init_user_ns, backing_path->dentry, name);
+}
+
+void *fuse_removexattr_finalize(struct fuse_bpf_args *fa,
+ struct dentry *dentry, const char *name)
+{
+ return NULL;
+}
+
+static inline void fuse_bpf_aio_put(struct fuse_bpf_aio_req *aio_req)
+{
+ if (refcount_dec_and_test(&aio_req->ref))
+ kmem_cache_free(fuse_bpf_aio_request_cachep, aio_req);
+}
+
+static void fuse_bpf_aio_cleanup_handler(struct fuse_bpf_aio_req *aio_req)
+{
+ struct kiocb *iocb = &aio_req->iocb;
+ struct kiocb *iocb_orig = aio_req->iocb_orig;
+
+ if (iocb->ki_flags & IOCB_WRITE) {
+ __sb_writers_acquired(file_inode(iocb->ki_filp)->i_sb,
+ SB_FREEZE_WRITE);
+ file_end_write(iocb->ki_filp);
+ fuse_copyattr(iocb_orig->ki_filp, iocb->ki_filp);
+ }
+ iocb_orig->ki_pos = iocb->ki_pos;
+ fuse_bpf_aio_put(aio_req);
+}
+
+static void fuse_bpf_aio_rw_complete(struct kiocb *iocb, long res, long res2)
+{
+ struct fuse_bpf_aio_req *aio_req =
+ container_of(iocb, struct fuse_bpf_aio_req, iocb);
+ struct kiocb *iocb_orig = aio_req->iocb_orig;
+
+ fuse_bpf_aio_cleanup_handler(aio_req);
+ iocb_orig->ki_complete(iocb_orig, res, res2);
+}
+
+
+int fuse_file_read_iter_initialize(
+ struct fuse_bpf_args *fa, struct fuse_file_read_iter_io *fri,
+ struct kiocb *iocb, struct iov_iter *to)
+{
+ struct file *file = iocb->ki_filp;
+ struct fuse_file *ff = file->private_data;
+
+ fri->fri = (struct fuse_read_in) {
+ .fh = ff->fh,
+ .offset = iocb->ki_pos,
+ .size = to->count,
+ };
+
+ fri->frio = (struct fuse_read_iter_out) {
+ .ret = fri->fri.size,
+ };
+
+ /* TODO we can't assume 'to' is a kvec */
+ /* TODO we also can't assume the vector has only one component */
+ *fa = (struct fuse_bpf_args) {
+ .opcode = FUSE_READ,
+ .nodeid = ff->nodeid,
+ .in_numargs = 1,
+ .in_args[0].size = sizeof(fri->fri),
+ .in_args[0].value = &fri->fri,
+ .out_numargs = 1,
+ .out_args[0].size = sizeof(fri->frio),
+ .out_args[0].value = &fri->frio,
+ /*
+ * TODO Design this properly.
+ * Possible approach: do not pass buf to bpf
+ * If going to userland, do a deep copy
+ * For extra credit, do that to/from the vector, rather than
+ * making an extra copy in the kernel
+ */
+ };
+
+ return 0;
+}
+
+int fuse_file_read_iter_backing(struct fuse_bpf_args *fa,
+ struct kiocb *iocb, struct iov_iter *to)
+{
+ struct fuse_read_iter_out *frio = fa->out_args[0].value;
+ struct file *file = iocb->ki_filp;
+ struct fuse_file *ff = file->private_data;
+ ssize_t ret;
+
+ if (!iov_iter_count(to))
+ return 0;
+
+ if ((iocb->ki_flags & IOCB_DIRECT) &&
+ (!ff->backing_file->f_mapping->a_ops ||
+ !ff->backing_file->f_mapping->a_ops->direct_IO))
+ return -EINVAL;
+
+ /* TODO This just plain ignores any change to fuse_read_in */
+ if (is_sync_kiocb(iocb)) {
+ ret = vfs_iter_read(ff->backing_file, to, &iocb->ki_pos,
+ iocb_to_rw_flags(iocb->ki_flags, FUSE_BPF_IOCB_MASK));
+ } else {
+ struct fuse_bpf_aio_req *aio_req;
+
+ ret = -ENOMEM;
+ aio_req = kmem_cache_zalloc(fuse_bpf_aio_request_cachep, GFP_KERNEL);
+ if (!aio_req)
+ goto out;
+
+ aio_req->iocb_orig = iocb;
+ kiocb_clone(&aio_req->iocb, iocb, ff->backing_file);
+ aio_req->iocb.ki_complete = fuse_bpf_aio_rw_complete;
+ refcount_set(&aio_req->ref, 2);
+ ret = vfs_iocb_iter_read(ff->backing_file, &aio_req->iocb, to);
+ fuse_bpf_aio_put(aio_req);
+ if (ret != -EIOCBQUEUED)
+ fuse_bpf_aio_cleanup_handler(aio_req);
+ }
+
+ frio->ret = ret;
+
+ /* TODO Need to point value at the buffer for post-modification */
+
+out:
+ fuse_file_accessed(file, ff->backing_file);
+
+ return ret;
+}
+
+void *fuse_file_read_iter_finalize(struct fuse_bpf_args *fa,
+ struct kiocb *iocb, struct iov_iter *to)
+{
+ struct fuse_read_iter_out *frio = fa->out_args[0].value;
+
+ return ERR_PTR(frio->ret);
+}
+
+int fuse_file_write_iter_initialize(
+ struct fuse_bpf_args *fa, struct fuse_file_write_iter_io *fwio,
+ struct kiocb *iocb, struct iov_iter *from)
+{
+ struct file *file = iocb->ki_filp;
+ struct fuse_file *ff = file->private_data;
+
+ *fwio = (struct fuse_file_write_iter_io) {
+ .fwi.fh = ff->fh,
+ .fwi.offset = iocb->ki_pos,
+ .fwi.size = from->count,
+ };
+
+ /* TODO we can't assume 'from' is a kvec */
+ *fa = (struct fuse_bpf_args) {
+ .opcode = FUSE_WRITE,
+ .nodeid = ff->nodeid,
+ .in_numargs = 2,
+ .in_args[0].size = sizeof(fwio->fwi),
+ .in_args[0].value = &fwio->fwi,
+ .in_args[1].size = fwio->fwi.size,
+ .in_args[1].value = from->kvec->iov_base,
+ .out_numargs = 1,
+ .out_args[0].size = sizeof(fwio->fwio),
+ .out_args[0].value = &fwio->fwio,
+ };
+
+ return 0;
+}
+
+int fuse_file_write_iter_backing(struct fuse_bpf_args *fa,
+ struct kiocb *iocb, struct iov_iter *from)
+{
+ struct file *file = iocb->ki_filp;
+ struct fuse_file *ff = file->private_data;
+ struct fuse_write_iter_out *fwio = fa->out_args[0].value;
+ ssize_t ret;
+
+ if (!iov_iter_count(from))
+ return 0;
+
+ /* TODO This just plain ignores any change to fuse_write_in */
+ /* TODO uint32_t seems smaller than ssize_t.... right? */
+ inode_lock(file_inode(file));
+
+ fuse_copyattr(file, ff->backing_file);
+
+ if (is_sync_kiocb(iocb)) {
+ file_start_write(ff->backing_file);
+ ret = vfs_iter_write(ff->backing_file, from, &iocb->ki_pos,
+ iocb_to_rw_flags(iocb->ki_flags, FUSE_BPF_IOCB_MASK));
+ file_end_write(ff->backing_file);
+
+ /* Must reflect change in size of backing file to upper file */
+ if (ret > 0)
+ fuse_copyattr(file, ff->backing_file);
+ } else {
+ struct fuse_bpf_aio_req *aio_req;
+
+ ret = -ENOMEM;
+ aio_req = kmem_cache_zalloc(fuse_bpf_aio_request_cachep, GFP_KERNEL);
+ if (!aio_req)
+ goto out;
+
+ file_start_write(ff->backing_file);
+ __sb_writers_release(file_inode(ff->backing_file)->i_sb, SB_FREEZE_WRITE);
+ aio_req->iocb_orig = iocb;
+ kiocb_clone(&aio_req->iocb, iocb, ff->backing_file);
+ aio_req->iocb.ki_complete = fuse_bpf_aio_rw_complete;
+ refcount_set(&aio_req->ref, 2);
+ ret = vfs_iocb_iter_write(ff->backing_file, &aio_req->iocb, from);
+ fuse_bpf_aio_put(aio_req);
+ if (ret != -EIOCBQUEUED)
+ fuse_bpf_aio_cleanup_handler(aio_req);
+ }
+
+out:
+ inode_unlock(file_inode(file));
+ fwio->ret = ret;
+ if (ret < 0)
+ return ret;
+ return 0;
+}
+
+void *fuse_file_write_iter_finalize(struct fuse_bpf_args *fa,
+ struct kiocb *iocb, struct iov_iter *from)
+{
+ struct fuse_write_iter_out *fwio = fa->out_args[0].value;
+
+ return ERR_PTR(fwio->ret);
+}
+
+ssize_t fuse_backing_mmap(struct file *file, struct vm_area_struct *vma)
+{
+ int ret;
+ struct fuse_file *ff = file->private_data;
+ struct inode *fuse_inode = file_inode(file);
+ struct file *backing_file = ff->backing_file;
+ struct inode *backing_inode = file_inode(backing_file);
+
+ if (!backing_file->f_op->mmap)
+ return -ENODEV;
+
+ if (WARN_ON(file != vma->vm_file))
+ return -EIO;
+
+ vma->vm_file = get_file(backing_file);
+
+ ret = call_mmap(vma->vm_file, vma);
+
+ if (ret)
+ fput(backing_file);
+ else
+ fput(file);
+
+ if (file->f_flags & O_NOATIME)
+ return ret;
+
+ if ((!timespec64_equal(&fuse_inode->i_mtime,
+ &backing_inode->i_mtime) ||
+ !timespec64_equal(&fuse_inode->i_ctime,
+ &backing_inode->i_ctime))) {
+ fuse_inode->i_mtime = backing_inode->i_mtime;
+ fuse_inode->i_ctime = backing_inode->i_ctime;
+ }
+ touch_atime(&file->f_path);
+
+ return ret;
+}
+
+int fuse_file_fallocate_initialize(struct fuse_bpf_args *fa,
+ struct fuse_fallocate_in *ffi,
+ struct file *file, int mode, loff_t offset, loff_t length)
+{
+ struct fuse_file *ff = file->private_data;
+
+ *ffi = (struct fuse_fallocate_in) {
+ .fh = ff->fh,
+ .offset = offset,
+ .length = length,
+ .mode = mode
+ };
+
+ *fa = (struct fuse_bpf_args) {
+ .opcode = FUSE_FALLOCATE,
+ .nodeid = ff->nodeid,
+ .in_numargs = 1,
+ .in_args[0].size = sizeof(*ffi),
+ .in_args[0].value = ffi,
+ };
+
+ return 0;
+}
+
+int fuse_file_fallocate_backing(struct fuse_bpf_args *fa,
+ struct file *file, int mode, loff_t offset, loff_t length)
+{
+ const struct fuse_fallocate_in *ffi = fa->in_args[0].value;
+ struct fuse_file *ff = file->private_data;
+
+ return vfs_fallocate(ff->backing_file, ffi->mode, ffi->offset,
+ ffi->length);
+}
+
+void *fuse_file_fallocate_finalize(struct fuse_bpf_args *fa,
+ struct file *file, int mode, loff_t offset, loff_t length)
+{
+ return NULL;
+}
+
+/*******************************************************************************
+ * Directory operations after here *
+ ******************************************************************************/
+
+int fuse_lookup_initialize(struct fuse_bpf_args *fa, struct fuse_lookup_io *fli,
+ struct inode *dir, struct dentry *entry, unsigned int flags)
+{
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_fuse_inode(dir)->nodeid,
+ .opcode = FUSE_LOOKUP,
+ .in_numargs = 1,
+ .out_numargs = 2,
+ .flags = FUSE_BPF_OUT_ARGVAR,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = entry->d_name.len + 1,
+ .value = entry->d_name.name,
+ },
+ .out_args[0] = (struct fuse_bpf_arg) {
+ .size = sizeof(fli->feo),
+ .value = &fli->feo,
+ },
+ .out_args[1] = (struct fuse_bpf_arg) {
+ .size = sizeof(fli->feb.out),
+ .value = &fli->feb.out,
+ },
+ };
+
+ return 0;
+}
+
+int fuse_lookup_backing(struct fuse_bpf_args *fa, struct inode *dir,
+ struct dentry *entry, unsigned int flags)
+{
+ struct fuse_dentry *fuse_entry = get_fuse_dentry(entry);
+ struct fuse_dentry *dir_fuse_entry = get_fuse_dentry(entry->d_parent);
+ struct dentry *dir_backing_entry = dir_fuse_entry->backing_path.dentry;
+ struct inode *dir_backing_inode = dir_backing_entry->d_inode;
+ struct dentry *backing_entry;
+ struct fuse_entry_out *feo = (void *)fa->out_args[0].value;
+ struct kstat stat;
+ int err;
+
+ /* TODO this will not handle lookups over mount points */
+ inode_lock_nested(dir_backing_inode, I_MUTEX_PARENT);
+ backing_entry = lookup_one_len(entry->d_name.name, dir_backing_entry,
+ strlen(entry->d_name.name));
+ inode_unlock(dir_backing_inode);
+
+ if (IS_ERR(backing_entry))
+ return PTR_ERR(backing_entry);
+
+ fuse_entry->backing_path = (struct path) {
+ .dentry = backing_entry,
+ .mnt = mntget(dir_fuse_entry->backing_path.mnt),
+ };
+
+ if (d_is_negative(backing_entry)) {
+ fa->error_in = -ENOENT;
+ return 0;
+ }
+
+ err = vfs_getattr(&fuse_entry->backing_path, &stat,
+ STATX_BASIC_STATS, 0);
+ if (err) {
+ path_put_init(&fuse_entry->backing_path);
+ return err;
+ }
+
+ fuse_stat_to_attr(get_fuse_conn(dir),
+ backing_entry->d_inode, &stat, &feo->attr);
+ return 0;
+}
+
+int fuse_handle_backing(struct fuse_entry_bpf *feb, struct inode **backing_inode,
+ struct path *backing_path)
+{
+ switch (feb->out.backing_action) {
+ case FUSE_ACTION_KEEP:
+ /* backing inode/path are added in fuse_lookup_backing */
+ break;
+
+ case FUSE_ACTION_REMOVE:
+ iput(*backing_inode);
+ *backing_inode = NULL;
+ path_put_init(backing_path);
+ break;
+
+ case FUSE_ACTION_REPLACE: {
+ struct file *backing_file = feb->backing_file;
+
+ if (!backing_file)
+ return -EINVAL;
+ if (IS_ERR(backing_file))
+ return PTR_ERR(backing_file);
+
+ if (backing_inode)
+ iput(*backing_inode);
+ *backing_inode = backing_file->f_inode;
+ ihold(*backing_inode);
+
+ path_put(backing_path);
+ *backing_path = backing_file->f_path;
+ path_get(backing_path);
+
+ fput(backing_file);
+ break;
+ }
+
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+int fuse_handle_bpf_prog(struct fuse_entry_bpf *feb, struct inode *parent,
+ struct bpf_prog **bpf)
+{
+ struct bpf_prog *new_bpf;
+
+ /* Parent isn't presented, but we want to keep
+ * Don't touch bpf program at all in this case
+ */
+ if (feb->out.bpf_action == FUSE_ACTION_KEEP && !parent)
+ return 0;
+
+ switch (feb->out.bpf_action) {
+ case FUSE_ACTION_KEEP: {
+ struct fuse_inode *pi = get_fuse_inode(parent);
+
+ new_bpf = pi->bpf;
+ if (new_bpf)
+ bpf_prog_inc(new_bpf);
+ break;
+ }
+
+ case FUSE_ACTION_REMOVE:
+ new_bpf = NULL;
+ break;
+
+ case FUSE_ACTION_REPLACE: {
+ struct file *bpf_file = feb->bpf_file;
+ struct bpf_prog *bpf_prog = ERR_PTR(-EINVAL);
+
+ if (bpf_file && !IS_ERR(bpf_file))
+ bpf_prog = fuse_get_bpf_prog(bpf_file);
+
+ if (IS_ERR(bpf_prog))
+ return PTR_ERR(bpf_prog);
+
+ new_bpf = bpf_prog;
+ break;
+ }
+
+ default:
+ return -EINVAL;
+ }
+
+ /* Cannot change existing program */
+ if (*bpf) {
+ bpf_prog_put(new_bpf);
+ return new_bpf == *bpf ? 0 : -EINVAL;
+ }
+
+ *bpf = new_bpf;
+ return 0;
+}
+
+struct dentry *fuse_lookup_finalize(struct fuse_bpf_args *fa, struct inode *dir,
+ struct dentry *entry, unsigned int flags)
+{
+ struct fuse_dentry *fd;
+ struct dentry *bd;
+ struct inode *inode, *backing_inode;
+ struct inode *d_inode = entry->d_inode;
+ struct fuse_entry_out *feo = fa->out_args[0].value;
+ struct fuse_entry_bpf_out *febo = fa->out_args[1].value;
+ struct fuse_entry_bpf *feb = container_of(febo, struct fuse_entry_bpf, out);
+ int error = -1;
+ u64 target_nodeid = 0;
+
+ fd = get_fuse_dentry(entry);
+ if (!fd)
+ return ERR_PTR(-EIO);
+ bd = fd->backing_path.dentry;
+ if (!bd)
+ return ERR_PTR(-ENOENT);
+ backing_inode = bd->d_inode;
+ if (!backing_inode)
+ return 0;
+
+ if (d_inode)
+ target_nodeid = get_fuse_inode(d_inode)->nodeid;
+
+ inode = fuse_iget_backing(dir->i_sb, target_nodeid, backing_inode);
+
+ if (IS_ERR(inode))
+ return ERR_PTR(PTR_ERR(inode));
+
+ error = fuse_handle_bpf_prog(feb, dir, &get_fuse_inode(inode)->bpf);
+ if (error)
+ return ERR_PTR(error);
+
+ error = fuse_handle_backing(feb, &get_fuse_inode(inode)->backing_inode, &fd->backing_path);
+ if (error)
+ return ERR_PTR(error);
+
+ get_fuse_inode(inode)->nodeid = feo->nodeid;
+
+ return d_splice_alias(inode, entry);
+}
+
+int fuse_revalidate_backing(struct dentry *entry, unsigned int flags)
+{
+ struct fuse_dentry *fuse_dentry = get_fuse_dentry(entry);
+ struct dentry *backing_entry = fuse_dentry->backing_path.dentry;
+
+ spin_lock(&backing_entry->d_lock);
+ if (d_unhashed(backing_entry)) {
+ spin_unlock(&backing_entry->d_lock);
+ return 0;
+ }
+ spin_unlock(&backing_entry->d_lock);
+
+ if (unlikely(backing_entry->d_flags & DCACHE_OP_REVALIDATE))
+ return backing_entry->d_op->d_revalidate(backing_entry, flags);
+ return 1;
+}
+
+int fuse_canonical_path_initialize(struct fuse_bpf_args *fa,
+ struct fuse_dummy_io *fdi,
+ const struct path *path,
+ struct path *canonical_path)
+{
+ fa->opcode = FUSE_CANONICAL_PATH;
+ return 0;
+}
+
+int fuse_canonical_path_backing(struct fuse_bpf_args *fa, const struct path *path,
+ struct path *canonical_path)
+{
+ get_fuse_backing_path(path->dentry, canonical_path);
+ return 0;
+}
+
+void *fuse_canonical_path_finalize(struct fuse_bpf_args *fa,
+ const struct path *path,
+ struct path *canonical_path)
+{
+ return NULL;
+}
+
+int fuse_mknod_initialize(
+ struct fuse_bpf_args *fa, struct fuse_mknod_in *fmi,
+ struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev)
+{
+ *fmi = (struct fuse_mknod_in) {
+ .mode = mode,
+ .rdev = new_encode_dev(rdev),
+ .umask = current_umask(),
+ };
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(dir),
+ .opcode = FUSE_MKNOD,
+ .in_numargs = 2,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = sizeof(*fmi),
+ .value = fmi,
+ },
+ .in_args[1] = (struct fuse_bpf_in_arg) {
+ .size = entry->d_name.len + 1,
+ .value = entry->d_name.name,
+ },
+ };
+
+ return 0;
+}
+
+int fuse_mknod_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev)
+{
+ int err = 0;
+ const struct fuse_mknod_in *fmi = fa->in_args[0].value;
+ struct fuse_inode *fuse_inode = get_fuse_inode(dir);
+ struct inode *backing_inode = fuse_inode->backing_inode;
+ struct path backing_path = {};
+ struct inode *inode = NULL;
+
+ //TODO Actually deal with changing the backing entry in mknod
+ get_fuse_backing_path(entry, &backing_path);
+ if (!backing_path.dentry)
+ return -EBADF;
+
+ inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+ mode = fmi->mode;
+ if (!IS_POSIXACL(backing_inode))
+ mode &= ~fmi->umask;
+ err = vfs_mknod(&init_user_ns, backing_inode, backing_path.dentry,
+ mode, new_decode_dev(fmi->rdev));
+ inode_unlock(backing_inode);
+ if (err)
+ goto out;
+ if (d_really_is_negative(backing_path.dentry) ||
+ unlikely(d_unhashed(backing_path.dentry))) {
+ err = -EINVAL;
+ /**
+ * TODO: overlayfs responds to this situation with a
+ * lookupOneLen. Should we do that too?
+ */
+ goto out;
+ }
+ inode = fuse_iget_backing(dir->i_sb, fuse_inode->nodeid, backing_inode);
+ if (IS_ERR(inode)) {
+ err = PTR_ERR(inode);
+ goto out;
+ }
+ d_instantiate(entry, inode);
+out:
+ path_put(&backing_path);
+ return err;
+}
+
+void *fuse_mknod_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev)
+{
+ return NULL;
+}
+
+int fuse_mkdir_initialize(
+ struct fuse_bpf_args *fa, struct fuse_mkdir_in *fmi,
+ struct inode *dir, struct dentry *entry, umode_t mode)
+{
+ *fmi = (struct fuse_mkdir_in) {
+ .mode = mode,
+ .umask = current_umask(),
+ };
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(dir),
+ .opcode = FUSE_MKDIR,
+ .in_numargs = 2,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = sizeof(*fmi),
+ .value = fmi,
+ },
+ .in_args[1] = (struct fuse_bpf_in_arg) {
+ .size = entry->d_name.len + 1,
+ .value = entry->d_name.name,
+ },
+ };
+
+ return 0;
+}
+
+int fuse_mkdir_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, umode_t mode)
+{
+ int err = 0;
+ const struct fuse_mkdir_in *fmi = fa->in_args[0].value;
+ struct fuse_inode *fuse_inode = get_fuse_inode(dir);
+ struct inode *backing_inode = fuse_inode->backing_inode;
+ struct path backing_path = {};
+ struct inode *inode = NULL;
+ struct dentry *d;
+
+ //TODO Actually deal with changing the backing entry in mkdir
+ get_fuse_backing_path(entry, &backing_path);
+ if (!backing_path.dentry)
+ return -EBADF;
+
+ inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+ mode = fmi->mode;
+ if (!IS_POSIXACL(backing_inode))
+ mode &= ~fmi->umask;
+ err = vfs_mkdir(&init_user_ns, backing_inode, backing_path.dentry, mode);
+ if (err)
+ goto out;
+ if (d_really_is_negative(backing_path.dentry) ||
+ unlikely(d_unhashed(backing_path.dentry))) {
+ d = lookup_one_len(entry->d_name.name, backing_path.dentry->d_parent,
+ entry->d_name.len);
+ if (IS_ERR(d)) {
+ err = PTR_ERR(d);
+ goto out;
+ }
+ dput(backing_path.dentry);
+ backing_path.dentry = d;
+ }
+ inode = fuse_iget_backing(dir->i_sb, fuse_inode->nodeid, backing_inode);
+ if (IS_ERR(inode)) {
+ err = PTR_ERR(inode);
+ goto out;
+ }
+ d_instantiate(entry, inode);
+out:
+ inode_unlock(backing_inode);
+ path_put(&backing_path);
+ return err;
+}
+
+void *fuse_mkdir_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, umode_t mode)
+{
+ return NULL;
+}
+
+int fuse_rmdir_initialize(
+ struct fuse_bpf_args *fa, struct fuse_dummy_io *dummy,
+ struct inode *dir, struct dentry *entry)
+{
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(dir),
+ .opcode = FUSE_RMDIR,
+ .in_numargs = 1,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = entry->d_name.len + 1,
+ .value = entry->d_name.name,
+ },
+ };
+
+ return 0;
+}
+
+int fuse_rmdir_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry)
+{
+ int err = 0;
+ struct path backing_path = {};
+ struct dentry *backing_parent_dentry;
+ struct inode *backing_inode;
+
+ /* TODO Actually deal with changing the backing entry in rmdir */
+ get_fuse_backing_path(entry, &backing_path);
+ if (!backing_path.dentry)
+ return -EBADF;
+
+ /* TODO Not sure if we should reverify like overlayfs, or get inode from d_parent */
+ backing_parent_dentry = dget_parent(backing_path.dentry);
+ backing_inode = d_inode(backing_parent_dentry);
+
+ inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+ err = vfs_rmdir(&init_user_ns, backing_inode, backing_path.dentry);
+ inode_unlock(backing_inode);
+
+ dput(backing_parent_dentry);
+ if (!err)
+ d_drop(entry);
+ path_put(&backing_path);
+ return err;
+}
+
+void *fuse_rmdir_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry)
+{
+ return NULL;
+}
+
+static int fuse_rename_backing_common(
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent,
+ unsigned int flags)
+{
+ int err = 0;
+ struct path old_backing_path;
+ struct path new_backing_path;
+ struct dentry *old_backing_dir_dentry;
+ struct dentry *old_backing_dentry;
+ struct dentry *new_backing_dir_dentry;
+ struct dentry *new_backing_dentry;
+ struct dentry *trap = NULL;
+ struct inode *target_inode;
+ struct renamedata rd;
+
+ //TODO Actually deal with changing anything that isn't a flag
+ get_fuse_backing_path(oldent, &old_backing_path);
+ if (!old_backing_path.dentry)
+ return -EBADF;
+ get_fuse_backing_path(newent, &new_backing_path);
+ if (!new_backing_path.dentry) {
+ /*
+ * TODO A file being moved from a backing path to another
+ * backing path which is not yet instrumented with FUSE-BPF.
+ * This may be slow and should be substituted with something
+ * more clever.
+ */
+ err = -EXDEV;
+ goto put_old_path;
+ }
+ if (new_backing_path.mnt != old_backing_path.mnt) {
+ err = -EXDEV;
+ goto put_new_path;
+ }
+ old_backing_dentry = old_backing_path.dentry;
+ new_backing_dentry = new_backing_path.dentry;
+ old_backing_dir_dentry = dget_parent(old_backing_dentry);
+ new_backing_dir_dentry = dget_parent(new_backing_dentry);
+ target_inode = d_inode(newent);
+
+ trap = lock_rename(old_backing_dir_dentry, new_backing_dir_dentry);
+ if (trap == old_backing_dentry) {
+ err = -EINVAL;
+ goto put_parents;
+ }
+ if (trap == new_backing_dentry) {
+ err = -ENOTEMPTY;
+ goto put_parents;
+ }
+ rd = (struct renamedata) {
+ .old_mnt_userns = &init_user_ns,
+ .old_dir = d_inode(old_backing_dir_dentry),
+ .old_dentry = old_backing_dentry,
+ .new_mnt_userns = &init_user_ns,
+ .new_dir = d_inode(new_backing_dir_dentry),
+ .new_dentry = new_backing_dentry,
+ .flags = flags,
+ };
+ err = vfs_rename(&rd);
+ if (err)
+ goto unlock;
+ if (target_inode)
+ fsstack_copy_attr_all(target_inode,
+ get_fuse_inode(target_inode)->backing_inode);
+ fsstack_copy_attr_all(d_inode(oldent), d_inode(old_backing_dentry));
+unlock:
+ unlock_rename(old_backing_dir_dentry, new_backing_dir_dentry);
+put_parents:
+ dput(new_backing_dir_dentry);
+ dput(old_backing_dir_dentry);
+put_new_path:
+ path_put(&new_backing_path);
+put_old_path:
+ path_put(&old_backing_path);
+ return err;
+}
+
+int fuse_rename2_initialize(struct fuse_bpf_args *fa, struct fuse_rename2_in *fri,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent,
+ unsigned int flags)
+{
+ *fri = (struct fuse_rename2_in) {
+ .newdir = get_node_id(newdir),
+ .flags = flags,
+ };
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(olddir),
+ .opcode = FUSE_RENAME2,
+ .in_numargs = 3,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = sizeof(*fri),
+ .value = fri,
+ },
+ .in_args[1] = (struct fuse_bpf_in_arg) {
+ .size = oldent->d_name.len + 1,
+ .value = oldent->d_name.name,
+ },
+ .in_args[2] = (struct fuse_bpf_in_arg) {
+ .size = newent->d_name.len + 1,
+ .value = newent->d_name.name,
+ },
+ };
+
+ return 0;
+}
+
+int fuse_rename2_backing(struct fuse_bpf_args *fa,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent,
+ unsigned int flags)
+{
+ const struct fuse_rename2_in *fri = fa->in_args[0].value;
+
+ /* TODO: deal with changing dirs/ents */
+ return fuse_rename_backing_common(olddir, oldent, newdir, newent, fri->flags);
+}
+
+void *fuse_rename2_finalize(struct fuse_bpf_args *fa,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent,
+ unsigned int flags)
+{
+ return NULL;
+}
+
+int fuse_rename_initialize(struct fuse_bpf_args *fa, struct fuse_rename_in *fri,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent)
+{
+ *fri = (struct fuse_rename_in) {
+ .newdir = get_node_id(newdir),
+ };
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(olddir),
+ .opcode = FUSE_RENAME,
+ .in_numargs = 3,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = sizeof(*fri),
+ .value = fri,
+ },
+ .in_args[1] = (struct fuse_bpf_in_arg) {
+ .size = oldent->d_name.len + 1,
+ .value = oldent->d_name.name,
+ },
+ .in_args[2] = (struct fuse_bpf_in_arg) {
+ .size = newent->d_name.len + 1,
+ .value = newent->d_name.name,
+ },
+ };
+
+ return 0;
+}
+
+int fuse_rename_backing(struct fuse_bpf_args *fa,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent)
+{
+ /* TODO: deal with changing dirs/ents */
+ return fuse_rename_backing_common(olddir, oldent, newdir, newent, 0);
+}
+
+void *fuse_rename_finalize(struct fuse_bpf_args *fa,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent)
+{
+ return NULL;
+}
+
+int fuse_unlink_initialize(
+ struct fuse_bpf_args *fa, struct fuse_dummy_io *dummy,
+ struct inode *dir, struct dentry *entry)
+{
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(dir),
+ .opcode = FUSE_UNLINK,
+ .in_numargs = 1,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = entry->d_name.len + 1,
+ .value = entry->d_name.name,
+ },
+ };
+
+ return 0;
+}
+
+int fuse_unlink_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry)
+{
+ int err = 0;
+ struct path backing_path = {};
+ struct dentry *backing_parent_dentry;
+ struct inode *backing_inode;
+
+ /* TODO Actually deal with changing the backing entry in unlink */
+ get_fuse_backing_path(entry, &backing_path);
+ if (!backing_path.dentry)
+ return -EBADF;
+
+ /* TODO Not sure if we should reverify like overlayfs, or get inode from d_parent */
+ backing_parent_dentry = dget_parent(backing_path.dentry);
+ backing_inode = d_inode(backing_parent_dentry);
+
+ inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+ err = vfs_unlink(&init_user_ns, backing_inode, backing_path.dentry, NULL);
+ inode_unlock(backing_inode);
+
+ dput(backing_parent_dentry);
+ if (!err)
+ d_drop(entry);
+ path_put(&backing_path);
+ return err;
+}
+
+void *fuse_unlink_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry)
+{
+ return NULL;
+}
+
+int fuse_link_initialize(struct fuse_bpf_args *fa, struct fuse_link_in *fli,
+ struct dentry *entry, struct inode *dir,
+ struct dentry *newent)
+{
+ struct inode *src_inode = entry->d_inode;
+
+ *fli = (struct fuse_link_in){
+ .oldnodeid = get_node_id(src_inode),
+ };
+
+ fa->opcode = FUSE_LINK;
+ fa->in_numargs = 2;
+ fa->in_args[0].size = sizeof(*fli);
+ fa->in_args[0].value = fli;
+ fa->in_args[1].size = newent->d_name.len + 1;
+ fa->in_args[1].value = newent->d_name.name;
+
+ return 0;
+}
+
+int fuse_link_backing(struct fuse_bpf_args *fa, struct dentry *entry,
+ struct inode *dir, struct dentry *newent)
+{
+ int err = 0;
+ struct path backing_old_path = {};
+ struct path backing_new_path = {};
+ struct dentry *backing_dir_dentry;
+ struct inode *fuse_new_inode = NULL;
+ struct fuse_inode *fuse_dir_inode = get_fuse_inode(dir);
+ struct inode *backing_dir_inode = fuse_dir_inode->backing_inode;
+
+ get_fuse_backing_path(entry, &backing_old_path);
+ if (!backing_old_path.dentry)
+ return -EBADF;
+
+ get_fuse_backing_path(newent, &backing_new_path);
+ if (!backing_new_path.dentry) {
+ err = -EBADF;
+ goto err_dst_path;
+ }
+
+ backing_dir_dentry = dget_parent(backing_new_path.dentry);
+ backing_dir_inode = d_inode(backing_dir_dentry);
+
+ inode_lock_nested(backing_dir_inode, I_MUTEX_PARENT);
+ err = vfs_link(backing_old_path.dentry, &init_user_ns,
+ backing_dir_inode, backing_new_path.dentry, NULL);
+ inode_unlock(backing_dir_inode);
+ if (err)
+ goto out;
+
+ if (d_really_is_negative(backing_new_path.dentry) ||
+ unlikely(d_unhashed(backing_new_path.dentry))) {
+ err = -EINVAL;
+ /**
+ * TODO: overlayfs responds to this situation with a
+ * lookupOneLen. Should we do that too?
+ */
+ goto out;
+ }
+
+ fuse_new_inode = fuse_iget_backing(dir->i_sb, fuse_dir_inode->nodeid, backing_dir_inode);
+ if (IS_ERR(fuse_new_inode)) {
+ err = PTR_ERR(fuse_new_inode);
+ goto out;
+ }
+ d_instantiate(newent, fuse_new_inode);
+
+out:
+ dput(backing_dir_dentry);
+ path_put(&backing_new_path);
+err_dst_path:
+ path_put(&backing_old_path);
+ return err;
+}
+
+void *fuse_link_finalize(struct fuse_bpf_args *fa, struct dentry *entry,
+ struct inode *dir, struct dentry *newent)
+{
+ return NULL;
+}
+
+int fuse_getattr_initialize(struct fuse_bpf_args *fa, struct fuse_getattr_io *fgio,
+ const struct dentry *entry, struct kstat *stat,
+ u32 request_mask, unsigned int flags)
+{
+ fgio->fgi = (struct fuse_getattr_in) {
+ .getattr_flags = flags,
+ .fh = -1, /* TODO is this OK? */
+ };
+
+ fgio->fao = (struct fuse_attr_out) {0};
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(entry->d_inode),
+ .opcode = FUSE_GETATTR,
+ .in_numargs = 1,
+ .out_numargs = 1,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = sizeof(fgio->fgi),
+ .value = &fgio->fgi,
+ },
+ .out_args[0] = (struct fuse_bpf_arg) {
+ .size = sizeof(fgio->fao),
+ .value = &fgio->fao,
+ },
+ };
+
+ return 0;
+}
+
+static void fuse_stat_to_attr(struct fuse_conn *fc, struct inode *inode,
+ struct kstat *stat, struct fuse_attr *attr)
+{
+ unsigned int blkbits;
+
+ /* see the comment in fuse_change_attributes() */
+ if (fc->writeback_cache && S_ISREG(inode->i_mode)) {
+ stat->size = i_size_read(inode);
+ stat->mtime.tv_sec = inode->i_mtime.tv_sec;
+ stat->mtime.tv_nsec = inode->i_mtime.tv_nsec;
+ stat->ctime.tv_sec = inode->i_ctime.tv_sec;
+ stat->ctime.tv_nsec = inode->i_ctime.tv_nsec;
+ }
+
+ attr->ino = stat->ino;
+ attr->mode = (inode->i_mode & S_IFMT) | (stat->mode & 07777);
+ attr->nlink = stat->nlink;
+ attr->uid = from_kuid(fc->user_ns, stat->uid);
+ attr->gid = from_kgid(fc->user_ns, stat->gid);
+ attr->atime = stat->atime.tv_sec;
+ attr->atimensec = stat->atime.tv_nsec;
+ attr->mtime = stat->mtime.tv_sec;
+ attr->mtimensec = stat->mtime.tv_nsec;
+ attr->ctime = stat->ctime.tv_sec;
+ attr->ctimensec = stat->ctime.tv_nsec;
+ attr->size = stat->size;
+ attr->blocks = stat->blocks;
+
+ if (stat->blksize != 0)
+ blkbits = ilog2(stat->blksize);
+ else
+ blkbits = inode->i_sb->s_blocksize_bits;
+
+ attr->blksize = 1 << blkbits;
+}
+
+int fuse_getattr_backing(struct fuse_bpf_args *fa,
+ const struct dentry *entry, struct kstat *stat,
+ u32 request_mask, unsigned int flags)
+{
+ struct path *backing_path =
+ &get_fuse_dentry(entry)->backing_path;
+ struct inode *backing_inode = backing_path->dentry->d_inode;
+ struct fuse_attr_out *fao = fa->out_args[0].value;
+ struct kstat tmp;
+ int err;
+
+ if (!stat)
+ stat = &tmp;
+
+ err = vfs_getattr(backing_path, stat, request_mask, flags);
+
+ if (!err)
+ fuse_stat_to_attr(get_fuse_conn(entry->d_inode),
+ backing_inode, stat, &fao->attr);
+
+ return err;
+}
+
+void *fuse_getattr_finalize(struct fuse_bpf_args *fa,
+ const struct dentry *entry, struct kstat *stat,
+ u32 request_mask, unsigned int flags)
+{
+ struct fuse_attr_out *outarg = fa->out_args[0].value;
+ struct inode *inode = entry->d_inode;
+ u64 attr_version = fuse_get_attr_version(get_fuse_mount(inode)->fc);
+ int err = 0;
+
+ /* TODO: Ensure this doesn't happen if we had an error getting attrs in
+ * backing.
+ */
+ err = finalize_attr(inode, outarg, attr_version, stat);
+ return ERR_PTR(err);
+}
+
+static void fattr_to_iattr(struct fuse_conn *fc,
+ const struct fuse_setattr_in *arg,
+ struct iattr *iattr)
+{
+ unsigned int fvalid = arg->valid;
+
+ if (fvalid & FATTR_MODE)
+ iattr->ia_valid |= ATTR_MODE, iattr->ia_mode = arg->mode;
+ if (fvalid & FATTR_UID) {
+ iattr->ia_valid |= ATTR_UID;
+ iattr->ia_uid = make_kuid(fc->user_ns, arg->uid);
+ }
+ if (fvalid & FATTR_GID) {
+ iattr->ia_valid |= ATTR_GID;
+ iattr->ia_gid = make_kgid(fc->user_ns, arg->gid);
+ }
+ if (fvalid & FATTR_SIZE)
+ iattr->ia_valid |= ATTR_SIZE, iattr->ia_size = arg->size;
+ if (fvalid & FATTR_ATIME) {
+ iattr->ia_valid |= ATTR_ATIME;
+ iattr->ia_atime.tv_sec = arg->atime;
+ iattr->ia_atime.tv_nsec = arg->atimensec;
+ if (!(fvalid & FATTR_ATIME_NOW))
+ iattr->ia_valid |= ATTR_ATIME_SET;
+ }
+ if (fvalid & FATTR_MTIME) {
+ iattr->ia_valid |= ATTR_MTIME;
+ iattr->ia_mtime.tv_sec = arg->mtime;
+ iattr->ia_mtime.tv_nsec = arg->mtimensec;
+ if (!(fvalid & FATTR_MTIME_NOW))
+ iattr->ia_valid |= ATTR_MTIME_SET;
+ }
+ if (fvalid & FATTR_CTIME) {
+ iattr->ia_valid |= ATTR_CTIME;
+ iattr->ia_ctime.tv_sec = arg->ctime;
+ iattr->ia_ctime.tv_nsec = arg->ctimensec;
+ }
+}
+
+int fuse_setattr_initialize(struct fuse_bpf_args *fa, struct fuse_setattr_io *fsio,
+ struct dentry *dentry, struct iattr *attr, struct file *file)
+{
+ struct fuse_conn *fc = get_fuse_conn(dentry->d_inode);
+
+ *fsio = (struct fuse_setattr_io) {0};
+ iattr_to_fattr(fc, attr, &fsio->fsi, true);
+
+ *fa = (struct fuse_bpf_args) {
+ .opcode = FUSE_SETATTR,
+ .nodeid = get_node_id(dentry->d_inode),
+ .in_numargs = 1,
+ .in_args[0].size = sizeof(fsio->fsi),
+ .in_args[0].value = &fsio->fsi,
+ .out_numargs = 1,
+ .out_args[0].size = sizeof(fsio->fao),
+ .out_args[0].value = &fsio->fao,
+ };
+
+ return 0;
+}
+
+int fuse_setattr_backing(struct fuse_bpf_args *fa,
+ struct dentry *dentry, struct iattr *attr, struct file *file)
+{
+ struct fuse_conn *fc = get_fuse_conn(dentry->d_inode);
+ const struct fuse_setattr_in *fsi = fa->in_args[0].value;
+ struct iattr new_attr = {0};
+ struct path *backing_path = &get_fuse_dentry(dentry)->backing_path;
+ int res;
+
+ fattr_to_iattr(fc, fsi, &new_attr);
+ /* TODO: Some info doesn't get saved by the attr->fattr->attr transition
+ * When we actually allow the bpf to change these, we may have to consider
+ * the extra flags more, or pass more info into the bpf. Until then we can
+ * keep everything except for ATTR_FILE, since we'd need a file on the
+ * lower fs. For what it's worth, neither f2fs nor ext4 make use of that
+ * even if it is present.
+ */
+ new_attr.ia_valid = attr->ia_valid & ~ATTR_FILE;
+ inode_lock(d_inode(backing_path->dentry));
+ res = notify_change(&init_user_ns, backing_path->dentry, &new_attr,
+ NULL);
+ inode_unlock(d_inode(backing_path->dentry));
+
+ if (res == 0 && (new_attr.ia_valid & ATTR_SIZE))
+ i_size_write(dentry->d_inode, new_attr.ia_size);
+ return res;
+}
+
+void *fuse_setattr_finalize(struct fuse_bpf_args *fa,
+ struct dentry *dentry, struct iattr *attr, struct file *file)
+{
+ return NULL;
+}
+
+int fuse_statfs_initialize(
+ struct fuse_bpf_args *fa, struct fuse_statfs_out *fso,
+ struct dentry *dentry, struct kstatfs *buf)
+{
+ *fso = (struct fuse_statfs_out) {0};
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(d_inode(dentry)),
+ .opcode = FUSE_STATFS,
+ .out_numargs = 1,
+ .out_numargs = 1,
+ .out_args[0].size = sizeof(fso),
+ .out_args[0].value = fso,
+ };
+
+ return 0;
+}
+
+int fuse_statfs_backing(
+ struct fuse_bpf_args *fa,
+ struct dentry *dentry, struct kstatfs *buf)
+{
+ int err = 0;
+ struct path backing_path;
+ struct fuse_statfs_out *fso = fa->out_args[0].value;
+
+ get_fuse_backing_path(dentry, &backing_path);
+ if (!backing_path.dentry)
+ return -EBADF;
+ err = vfs_statfs(&backing_path, buf);
+ path_put(&backing_path);
+ buf->f_type = FUSE_SUPER_MAGIC;
+
+ //TODO Provide postfilter opportunity to modify
+ if (!err)
+ convert_statfs_to_fuse(&fso->st, buf);
+
+ return err;
+}
+
+void *fuse_statfs_finalize(
+ struct fuse_bpf_args *fa,
+ struct dentry *dentry, struct kstatfs *buf)
+{
+ struct fuse_statfs_out *fso = fa->out_args[0].value;
+
+ if (!fa->error_in)
+ convert_fuse_statfs(buf, &fso->st);
+ return NULL;
+}
+
+int fuse_get_link_initialize(struct fuse_bpf_args *fa, struct fuse_dummy_io *unused,
+ struct inode *inode, struct dentry *dentry,
+ struct delayed_call *callback, const char **out)
+{
+ /*
+ * TODO
+ * If we want to handle changing these things, we'll need to copy
+ * the lower fs's data into our own buffer, and provide our own callback
+ * to free that buffer.
+ *
+ * Pre could change the name we're looking at
+ * postfilter can change the name we return
+ *
+ * We ought to only make that buffer if it's been requested, so leaving
+ * this unimplemented for the moment
+ */
+ *fa = (struct fuse_bpf_args) {
+ .opcode = FUSE_READLINK,
+ .nodeid = get_node_id(inode),
+ .in_numargs = 1,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = dentry->d_name.len + 1,
+ .value = dentry->d_name.name,
+ },
+ /*
+ * .out_argvar = 1,
+ * .out_numargs = 1,
+ * .out_args[0].size = ,
+ * .out_args[0].value = ,
+ */
+ };
+
+ return 0;
+}
+
+int fuse_get_link_backing(struct fuse_bpf_args *fa,
+ struct inode *inode, struct dentry *dentry,
+ struct delayed_call *callback, const char **out)
+{
+ struct path backing_path;
+
+ if (!dentry) {
+ *out = ERR_PTR(-ECHILD);
+ return PTR_ERR(*out);
+ }
+
+ get_fuse_backing_path(dentry, &backing_path);
+ if (!backing_path.dentry) {
+ *out = ERR_PTR(-ECHILD);
+ return PTR_ERR(*out);
+ }
+
+ /*
+ * TODO: If we want to do our own thing, copy the data and then call the
+ * callback
+ */
+ *out = vfs_get_link(backing_path.dentry, callback);
+
+ path_put(&backing_path);
+ return 0;
+}
+
+void *fuse_get_link_finalize(struct fuse_bpf_args *fa,
+ struct inode *inode, struct dentry *dentry,
+ struct delayed_call *callback, const char **out)
+{
+ return NULL;
+}
+
+int fuse_symlink_initialize(
+ struct fuse_bpf_args *fa, struct fuse_dummy_io *unused,
+ struct inode *dir, struct dentry *entry, const char *link, int len)
+{
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = get_node_id(dir),
+ .opcode = FUSE_SYMLINK,
+ .in_numargs = 2,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = entry->d_name.len + 1,
+ .value = entry->d_name.name,
+ },
+ .in_args[1] = (struct fuse_bpf_in_arg) {
+ .size = len,
+ .value = link,
+ },
+ };
+
+ return 0;
+}
+
+int fuse_symlink_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, const char *link, int len)
+{
+ int err = 0;
+ struct fuse_inode *fuse_inode = get_fuse_inode(dir);
+ struct inode *backing_inode = fuse_inode->backing_inode;
+ struct path backing_path = {};
+ struct inode *inode = NULL;
+
+ //TODO Actually deal with changing the backing entry in symlink
+ get_fuse_backing_path(entry, &backing_path);
+ if (!backing_path.dentry)
+ return -EBADF;
+
+ inode_lock_nested(backing_inode, I_MUTEX_PARENT);
+ err = vfs_symlink(&init_user_ns, backing_inode, backing_path.dentry,
+ link);
+ inode_unlock(backing_inode);
+ if (err)
+ goto out;
+ if (d_really_is_negative(backing_path.dentry) ||
+ unlikely(d_unhashed(backing_path.dentry))) {
+ err = -EINVAL;
+ /**
+ * TODO: overlayfs responds to this situation with a
+ * lookupOneLen. Should we do that too?
+ */
+ goto out;
+ }
+ inode = fuse_iget_backing(dir->i_sb, fuse_inode->nodeid, backing_inode);
+ if (IS_ERR(inode)) {
+ err = PTR_ERR(inode);
+ goto out;
+ }
+ d_instantiate(entry, inode);
+out:
+ path_put(&backing_path);
+ return err;
+}
+
+void *fuse_symlink_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, const char *link, int len)
+{
+ return NULL;
+}
+
+int fuse_readdir_initialize(struct fuse_bpf_args *fa, struct fuse_read_io *frio,
+ struct file *file, struct dir_context *ctx,
+ bool *force_again, bool *allow_force, bool is_continued)
+{
+ struct fuse_file *ff = file->private_data;
+ u8 *page = (u8 *)__get_free_page(GFP_KERNEL);
+
+ if (!page)
+ return -ENOMEM;
+
+ *fa = (struct fuse_bpf_args) {
+ .nodeid = ff->nodeid,
+ .opcode = FUSE_READDIR,
+ .in_numargs = 1,
+ .flags = FUSE_BPF_OUT_ARGVAR,
+ .out_numargs = 2,
+ .in_args[0] = (struct fuse_bpf_in_arg) {
+ .size = sizeof(frio->fri),
+ .value = &frio->fri,
+ },
+ .out_args[0] = (struct fuse_bpf_arg) {
+ .size = sizeof(frio->fro),
+ .value = &frio->fro,
+ },
+ .out_args[1] = (struct fuse_bpf_arg) {
+ .size = PAGE_SIZE,
+ .value = page,
+ },
+ };
+
+ frio->fri = (struct fuse_read_in) {
+ .fh = ff->fh,
+ .offset = ctx->pos,
+ .size = PAGE_SIZE,
+ };
+ frio->fro = (struct fuse_read_out) {
+ .again = 0,
+ .offset = 0,
+ };
+ *force_again = false;
+ *allow_force = true;
+ return 0;
+}
+
+struct extfuse_ctx {
+ struct dir_context ctx;
+ u8 *addr;
+ size_t offset;
+};
+
+static int filldir(struct dir_context *ctx, const char *name, int namelen,
+ loff_t offset, u64 ino, unsigned int d_type)
+{
+ struct extfuse_ctx *ec = container_of(ctx, struct extfuse_ctx, ctx);
+ struct fuse_dirent *fd = (struct fuse_dirent *) (ec->addr + ec->offset);
+
+ if (ec->offset + sizeof(struct fuse_dirent) + namelen > PAGE_SIZE)
+ return -ENOMEM;
+
+ *fd = (struct fuse_dirent) {
+ .ino = ino,
+ .off = offset,
+ .namelen = namelen,
+ .type = d_type,
+ };
+
+ memcpy(fd->name, name, namelen);
+ ec->offset += FUSE_DIRENT_SIZE(fd);
+
+ return 0;
+}
+
+static int parse_dirfile(char *buf, size_t nbytes, struct dir_context *ctx)
+{
+ while (nbytes >= FUSE_NAME_OFFSET) {
+ struct fuse_dirent *dirent = (struct fuse_dirent *) buf;
+ size_t reclen = FUSE_DIRENT_SIZE(dirent);
+
+ if (!dirent->namelen || dirent->namelen > FUSE_NAME_MAX)
+ return -EIO;
+ if (reclen > nbytes)
+ break;
+ if (memchr(dirent->name, '/', dirent->namelen) != NULL)
+ return -EIO;
+
+ ctx->pos = dirent->off;
+ if (!dir_emit(ctx, dirent->name, dirent->namelen, dirent->ino,
+ dirent->type))
+ break;
+
+ buf += reclen;
+ nbytes -= reclen;
+ }
+
+ return 0;
+}
+
+
+int fuse_readdir_backing(struct fuse_bpf_args *fa,
+ struct file *file, struct dir_context *ctx,
+ bool *force_again, bool *allow_force, bool is_continued)
+{
+ struct fuse_file *ff = file->private_data;
+ struct file *backing_dir = ff->backing_file;
+ struct fuse_read_out *fro = fa->out_args[0].value;
+ struct extfuse_ctx ec;
+ int err;
+
+ ec = (struct extfuse_ctx) {
+ .ctx.actor = filldir,
+ .ctx.pos = ctx->pos,
+ .addr = fa->out_args[1].value,
+ };
+
+ if (!ec.addr)
+ return -ENOMEM;
+
+ if (!is_continued)
+ backing_dir->f_pos = file->f_pos;
+
+ err = iterate_dir(backing_dir, &ec.ctx);
+ if (ec.offset == 0)
+ *allow_force = false;
+ fa->out_args[1].size = ec.offset;
+
+ fro->offset = ec.ctx.pos;
+ fro->again = false;
+ return err;
+}
+
+void *fuse_readdir_finalize(struct fuse_bpf_args *fa,
+ struct file *file, struct dir_context *ctx,
+ bool *force_again, bool *allow_force, bool is_continued)
+{
+ struct fuse_read_out *fro = fa->out_args[0].value;
+ struct fuse_file *ff = file->private_data;
+ struct file *backing_dir = ff->backing_file;
+ int err = 0;
+
+ err = parse_dirfile(fa->out_args[1].value, fa->out_args[1].size, ctx);
+ *force_again = !!fro->again;
+ if (*force_again && !*allow_force)
+ err = -EINVAL;
+
+ ctx->pos = fro->offset;
+ backing_dir->f_pos = fro->offset;
+
+ free_page((unsigned long) fa->out_args[1].value);
+ return ERR_PTR(err);
+}
+
+int fuse_access_initialize(struct fuse_bpf_args *fa, struct fuse_access_in *fai,
+ struct inode *inode, int mask)
+{
+ *fai = (struct fuse_access_in) {
+ .mask = mask,
+ };
+
+ *fa = (struct fuse_bpf_args) {
+ .opcode = FUSE_ACCESS,
+ .nodeid = get_node_id(inode),
+ .in_numargs = 1,
+ .in_args[0].size = sizeof(*fai),
+ .in_args[0].value = fai,
+ };
+
+ return 0;
+}
+
+int fuse_access_backing(struct fuse_bpf_args *fa, struct inode *inode, int mask)
+{
+ struct fuse_inode *fi = get_fuse_inode(inode);
+ const struct fuse_access_in *fai = fa->in_args[0].value;
+
+ return inode_permission(&init_user_ns, fi->backing_inode, fai->mask);
+}
+
+void *fuse_access_finalize(struct fuse_bpf_args *fa, struct inode *inode, int mask)
+{
+ return NULL;
+}
+
+int __init fuse_bpf_init(void)
+{
+ fuse_bpf_aio_request_cachep = kmem_cache_create("fuse_bpf_aio_req",
+ sizeof(struct fuse_bpf_aio_req),
+ 0, SLAB_HWCACHE_ALIGN, NULL);
+ if (!fuse_bpf_aio_request_cachep)
+ return -ENOMEM;
+
+ return 0;
+}
+
+void __exit fuse_bpf_cleanup(void)
+{
+ kmem_cache_destroy(fuse_bpf_aio_request_cachep);
+}
+
+ssize_t fuse_bpf_simple_request(struct fuse_mount *fm, struct fuse_bpf_args *bpf_args)
+{
+ int i;
+ ssize_t res;
+ struct fuse_args args = {
+ .nodeid = bpf_args->nodeid,
+ .opcode = bpf_args->opcode,
+ .error_in = bpf_args->error_in,
+ .in_numargs = bpf_args->in_numargs,
+ .out_numargs = bpf_args->out_numargs,
+ .force = !!(bpf_args->flags & FUSE_BPF_FORCE),
+ .out_argvar = !!(bpf_args->flags & FUSE_BPF_OUT_ARGVAR),
+ };
+
+ for (i = 0; i < args.in_numargs; ++i)
+ args.in_args[i] = (struct fuse_in_arg) {
+ .size = bpf_args->in_args[i].size,
+ .value = bpf_args->in_args[i].value,
+ };
+ for (i = 0; i < args.out_numargs; ++i)
+ args.out_args[i] = (struct fuse_arg) {
+ .size = bpf_args->out_args[i].size,
+ .value = bpf_args->out_args[i].value,
+ };
+
+ res = fuse_simple_request(fm, &args);
+
+ *bpf_args = (struct fuse_bpf_args) {
+ .nodeid = args.nodeid,
+ .opcode = args.opcode,
+ .error_in = args.error_in,
+ .in_numargs = args.in_numargs,
+ .out_numargs = args.out_numargs,
+ };
+ if (args.force)
+ bpf_args->flags |= FUSE_BPF_FORCE;
+ if (args.out_argvar)
+ bpf_args->flags |= FUSE_BPF_OUT_ARGVAR;
+ for (i = 0; i < args.in_numargs; ++i)
+ bpf_args->in_args[i] = (struct fuse_bpf_in_arg) {
+ .size = args.in_args[i].size,
+ .value = args.in_args[i].value,
+ };
+ for (i = 0; i < args.out_numargs; ++i)
+ bpf_args->out_args[i] = (struct fuse_bpf_arg) {
+ .size = args.out_args[i].size,
+ .value = args.out_args[i].value,
+ };
+ return res;
+}
diff --git a/fs/fuse/control.c b/fs/fuse/control.c
index 79f01d0..4aae0e6 100644
--- a/fs/fuse/control.c
+++ b/fs/fuse/control.c
@@ -395,7 +395,7 @@
return register_filesystem(&fuse_ctl_fs_type);
}
-void __exit fuse_ctl_cleanup(void)
+void fuse_ctl_cleanup(void)
{
unregister_filesystem(&fuse_ctl_fs_type);
}
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index 9f7af04..cb26f9a 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -242,6 +242,11 @@
{
struct fuse_iqueue *fiq = &fc->iq;
+ if (nodeid == 0) {
+ kfree(forget);
+ return;
+ }
+
forget->forget_one.nodeid = nodeid;
forget->forget_one.nlookup = nlookup;
@@ -483,6 +488,7 @@
{
req->in.h.opcode = args->opcode;
req->in.h.nodeid = args->nodeid;
+ req->in.h.padding = args->error_in;
req->args = args;
if (args->end)
__set_bit(FR_ASYNC, &req->flags);
@@ -1943,6 +1949,19 @@
kern_path(path, 0, req->args->canonical_path);
}
+ if (!err && (req->in.h.opcode == FUSE_LOOKUP ||
+ req->in.h.opcode == (FUSE_LOOKUP | FUSE_POSTFILTER)) &&
+ req->args->out_args[1].size == sizeof(struct fuse_entry_bpf_out)) {
+ struct fuse_entry_bpf_out *febo = (struct fuse_entry_bpf_out *)
+ req->args->out_args[1].value;
+ struct fuse_entry_bpf *feb = container_of(febo, struct fuse_entry_bpf, out);
+
+ if (febo->backing_action == FUSE_ACTION_REPLACE)
+ feb->backing_file = fget(febo->backing_fd);
+ if (febo->bpf_action == FUSE_ACTION_REPLACE)
+ feb->bpf_file = fget(febo->bpf_fd);
+ }
+
spin_lock(&fpq->lock);
clear_bit(FR_LOCKED, &req->flags);
if (!fpq->connected)
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index ddb71891..3cb1de1e 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -8,8 +8,10 @@
#include "fuse_i.h"
+#include <linux/fdtable.h>
#include <linux/pagemap.h>
#include <linux/file.h>
+#include <linux/filter.h>
#include <linux/fs_context.h>
#include <linux/sched.h>
#include <linux/namei.h>
@@ -21,6 +23,8 @@
#include <linux/types.h>
#include <linux/kernel.h>
+#include "../internal.h"
+
static void fuse_advise_use_readdirplus(struct inode *dir)
{
struct fuse_inode *fi = get_fuse_inode(dir);
@@ -28,7 +32,7 @@
set_bit(FUSE_I_ADVISE_RDPLUS, &fi->state);
}
-#if BITS_PER_LONG >= 64
+#if BITS_PER_LONG >= 64 && !defined(CONFIG_FUSE_BPF)
static inline void __fuse_dentry_settime(struct dentry *entry, u64 time)
{
entry->d_fsdata = (void *) time;
@@ -40,19 +44,15 @@
}
#else
-union fuse_dentry {
- u64 time;
- struct rcu_head rcu;
-};
static inline void __fuse_dentry_settime(struct dentry *dentry, u64 time)
{
- ((union fuse_dentry *) dentry->d_fsdata)->time = time;
+ ((struct fuse_dentry *) dentry->d_fsdata)->time = time;
}
static inline u64 fuse_dentry_time(const struct dentry *entry)
{
- return ((union fuse_dentry *) entry->d_fsdata)->time;
+ return ((struct fuse_dentry *) entry->d_fsdata)->time;
}
#endif
@@ -77,26 +77,16 @@
__fuse_dentry_settime(dentry, time);
}
-/*
- * FUSE caches dentries and attributes with separate timeout. The
- * time in jiffies until the dentry/attributes are valid is stored in
- * dentry->d_fsdata and fuse_inode->i_time respectively.
- */
-
-/*
- * Calculate the time in jiffies until a dentry/attributes are valid
- */
-static u64 time_to_jiffies(u64 sec, u32 nsec)
+void fuse_init_dentry_root(struct dentry *root, struct file *backing_dir)
{
- if (sec || nsec) {
- struct timespec64 ts = {
- sec,
- min_t(u32, nsec, NSEC_PER_SEC - 1)
- };
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_dentry *fuse_dentry = root->d_fsdata;
- return get_jiffies_64() + timespec64_to_jiffies(&ts);
- } else
- return 0;
+ if (backing_dir) {
+ fuse_dentry->backing_path = backing_dir->f_path;
+ path_get(&fuse_dentry->backing_path);
+ }
+#endif
}
/*
@@ -109,11 +99,6 @@
time_to_jiffies(o->entry_valid, o->entry_valid_nsec));
}
-static u64 attr_timeout(struct fuse_attr_out *o)
-{
- return time_to_jiffies(o->attr_valid, o->attr_valid_nsec);
-}
-
u64 entry_attr_timeout(struct fuse_entry_out *o)
{
return time_to_jiffies(o->attr_valid, o->attr_valid_nsec);
@@ -174,7 +159,8 @@
static void fuse_lookup_init(struct fuse_conn *fc, struct fuse_args *args,
u64 nodeid, const struct qstr *name,
- struct fuse_entry_out *outarg)
+ struct fuse_entry_out *outarg,
+ struct fuse_entry_bpf_out *bpf_outarg)
{
memset(outarg, 0, sizeof(struct fuse_entry_out));
args->opcode = FUSE_LOOKUP;
@@ -182,11 +168,52 @@
args->in_numargs = 1;
args->in_args[0].size = name->len + 1;
args->in_args[0].value = name->name;
- args->out_numargs = 1;
+ args->out_argvar = true;
+ args->out_numargs = 2;
args->out_args[0].size = sizeof(struct fuse_entry_out);
args->out_args[0].value = outarg;
+ args->out_args[1].size = sizeof(struct fuse_entry_bpf_out);
+ args->out_args[1].value = bpf_outarg;
}
+#ifdef CONFIG_FUSE_BPF
+static bool backing_data_changed(struct fuse_inode *fi, struct dentry *entry,
+ struct fuse_entry_bpf *bpf_arg)
+{
+ struct path new_backing_path;
+ struct inode *new_backing_inode;
+ struct bpf_prog *bpf = NULL;
+ int err;
+ bool ret = true;
+
+ if (!entry)
+ return false;
+
+ get_fuse_backing_path(entry, &new_backing_path);
+ new_backing_inode = fi->backing_inode;
+ ihold(new_backing_inode);
+
+ err = fuse_handle_backing(bpf_arg, &new_backing_inode, &new_backing_path);
+
+ if (err)
+ goto put_inode;
+
+ err = fuse_handle_bpf_prog(bpf_arg, entry->d_parent->d_inode, &bpf);
+ if (err)
+ goto put_bpf;
+
+ ret = (bpf != fi->bpf || fi->backing_inode != new_backing_inode ||
+ !path_equal(&get_fuse_dentry(entry)->backing_path, &new_backing_path));
+put_bpf:
+ if (bpf)
+ bpf_prog_put(bpf);
+put_inode:
+ iput(new_backing_inode);
+ path_put(&new_backing_path);
+ return ret;
+}
+#endif
+
/*
* Check whether the dentry is still valid
*
@@ -207,9 +234,23 @@
inode = d_inode_rcu(entry);
if (inode && fuse_is_bad(inode))
goto invalid;
- else if (time_before64(fuse_dentry_time(entry), get_jiffies_64()) ||
+
+#ifdef CONFIG_FUSE_BPF
+ /* TODO: Do we need bpf support for revalidate?
+ * If the lower filesystem says the entry is invalid, FUSE probably shouldn't
+ * try to fix that without going through the normal lookup path...
+ */
+ if (get_fuse_dentry(entry)->backing_path.dentry) {
+ ret = fuse_revalidate_backing(entry, flags);
+ if (ret <= 0) {
+ goto out;
+ }
+ }
+#endif
+ if (time_before64(fuse_dentry_time(entry), get_jiffies_64()) ||
(flags & (LOOKUP_EXCL | LOOKUP_REVAL))) {
struct fuse_entry_out outarg;
+ struct fuse_entry_bpf bpf_arg;
FUSE_ARGS(args);
struct fuse_forget_link *forget;
u64 attr_version;
@@ -221,27 +262,44 @@
ret = -ECHILD;
if (flags & LOOKUP_RCU)
goto out;
-
fm = get_fuse_mount(inode);
+ parent = dget_parent(entry);
+
+#ifdef CONFIG_FUSE_BPF
+ /* TODO: Once we're handling timeouts for backing inodes, do a
+ * bpf based lookup_revalidate here.
+ */
+ if (get_fuse_inode(parent->d_inode)->backing_inode) {
+ dput(parent);
+ ret = 1;
+ goto out;
+ }
+#endif
forget = fuse_alloc_forget();
ret = -ENOMEM;
- if (!forget)
+ if (!forget) {
+ dput(parent);
goto out;
+ }
attr_version = fuse_get_attr_version(fm->fc);
- parent = dget_parent(entry);
fuse_lookup_init(fm->fc, &args, get_node_id(d_inode(parent)),
- &entry->d_name, &outarg);
+ &entry->d_name, &outarg, &bpf_arg.out);
ret = fuse_simple_request(fm, &args);
dput(parent);
+
/* Zero nodeid is same as -ENOENT */
if (!ret && !outarg.nodeid)
ret = -ENOENT;
- if (!ret) {
+ if (!ret || ret == sizeof(bpf_arg.out)) {
fi = get_fuse_inode(inode);
if (outarg.nodeid != get_node_id(inode) ||
+#ifdef CONFIG_FUSE_BPF
+ (ret == sizeof(bpf_arg.out) &&
+ backing_data_changed(fi, entry, &bpf_arg)) ||
+#endif
(bool) IS_AUTOMOUNT(inode) != (bool) (outarg.attr.flags & FUSE_ATTR_SUBMOUNT)) {
fuse_queue_forget(fm->fc, forget,
outarg.nodeid, 1);
@@ -283,17 +341,20 @@
goto out;
}
-#if BITS_PER_LONG < 64
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
static int fuse_dentry_init(struct dentry *dentry)
{
- dentry->d_fsdata = kzalloc(sizeof(union fuse_dentry),
+ dentry->d_fsdata = kzalloc(sizeof(struct fuse_dentry),
GFP_KERNEL_ACCOUNT | __GFP_RECLAIMABLE);
return dentry->d_fsdata ? 0 : -ENOMEM;
}
static void fuse_dentry_release(struct dentry *dentry)
{
- union fuse_dentry *fd = dentry->d_fsdata;
+ struct fuse_dentry *fd = dentry->d_fsdata;
+
+ if (fd && fd->backing_path.dentry)
+ path_put(&fd->backing_path);
kfree_rcu(fd, rcu);
}
@@ -347,6 +408,18 @@
char *path_name;
int err;
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_dummy_io,
+ fuse_canonical_path_initialize,
+ fuse_canonical_path_backing,
+ fuse_canonical_path_finalize, path,
+ canonical_path);
+ if (fer.ret)
+ return;
+#endif
+
path_name = (char *)get_zeroed_page(GFP_KERNEL);
if (!path_name)
goto default_path;
@@ -373,7 +446,7 @@
const struct dentry_operations fuse_dentry_operations = {
.d_revalidate = fuse_dentry_revalidate,
.d_delete = fuse_dentry_delete,
-#if BITS_PER_LONG < 64
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
.d_init = fuse_dentry_init,
.d_release = fuse_dentry_release,
#endif
@@ -382,7 +455,7 @@
};
const struct dentry_operations fuse_root_dentry_operations = {
-#if BITS_PER_LONG < 64
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
.d_init = fuse_dentry_init,
.d_release = fuse_dentry_release,
#endif
@@ -401,10 +474,13 @@
}
int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name,
- struct fuse_entry_out *outarg, struct inode **inode)
+ struct fuse_entry_out *outarg,
+ struct dentry *entry,
+ struct inode **inode)
{
struct fuse_mount *fm = get_fuse_mount_super(sb);
FUSE_ARGS(args);
+ struct fuse_entry_bpf bpf_arg = {0};
struct fuse_forget_link *forget;
u64 attr_version;
int err;
@@ -422,23 +498,68 @@
attr_version = fuse_get_attr_version(fm->fc);
- fuse_lookup_init(fm->fc, &args, nodeid, name, outarg);
+ fuse_lookup_init(fm->fc, &args, nodeid, name, outarg, &bpf_arg.out);
err = fuse_simple_request(fm, &args);
- /* Zero nodeid is same as -ENOENT, but with valid timeout */
- if (err || !outarg->nodeid)
- goto out_put_forget;
- err = -EIO;
- if (!outarg->nodeid)
- goto out_put_forget;
- if (fuse_invalid_attr(&outarg->attr))
- goto out_put_forget;
+#ifdef CONFIG_FUSE_BPF
+ if (err == sizeof(bpf_arg.out)) {
+ /* TODO Make sure this handles invalid handles */
+ struct file *backing_file;
+ struct inode *backing_inode;
- *inode = fuse_iget(sb, outarg->nodeid, outarg->generation,
- &outarg->attr, entry_attr_timeout(outarg),
- attr_version);
+ err = -ENOENT;
+ if (!entry)
+ goto out_queue_forget;
+
+ err = -EINVAL;
+ backing_file = bpf_arg.backing_file;
+ if (!backing_file)
+ goto out_queue_forget;
+
+ if (IS_ERR(backing_file)) {
+ err = PTR_ERR(backing_file);
+ goto out_queue_forget;
+ }
+
+ backing_inode = backing_file->f_inode;
+ *inode = fuse_iget_backing(sb, outarg->nodeid, backing_inode);
+ if (!*inode)
+ goto bpf_arg_out;
+
+ err = fuse_handle_backing(&bpf_arg,
+ &get_fuse_inode(*inode)->backing_inode,
+ &get_fuse_dentry(entry)->backing_path);
+ if (err)
+ goto out;
+
+ err = fuse_handle_bpf_prog(&bpf_arg, NULL, &get_fuse_inode(*inode)->bpf);
+ if (err)
+ goto out;
+bpf_arg_out:
+ fput(backing_file);
+ } else
+#endif
+ {
+ /* Zero nodeid is same as -ENOENT, but with valid timeout */
+ if (err || !outarg->nodeid)
+ goto out_put_forget;
+
+ err = -EIO;
+ if (!outarg->nodeid)
+ goto out_put_forget;
+ if (fuse_invalid_attr(&outarg->attr))
+ goto out_put_forget;
+
+ *inode = fuse_iget(sb, outarg->nodeid, outarg->generation,
+ &outarg->attr, entry_attr_timeout(outarg),
+ attr_version);
+ }
+
err = -ENOMEM;
- if (!*inode) {
+#ifdef CONFIG_FUSE_BPF
+out_queue_forget:
+#endif
+ if (!*inode && outarg->nodeid) {
fuse_queue_forget(fm->fc, forget, outarg->nodeid, 1);
goto out;
}
@@ -460,12 +581,23 @@
bool outarg_valid = true;
bool locked;
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(dir, struct fuse_lookup_io,
+ fuse_lookup_initialize, fuse_lookup_backing,
+ fuse_lookup_finalize,
+ dir, entry, flags);
+ if (fer.ret)
+ return fer.result;
+#endif
+
if (fuse_is_bad(dir))
return ERR_PTR(-EIO);
locked = fuse_lock_inode(dir);
err = fuse_lookup_name(dir->i_sb, get_node_id(dir), &entry->d_name,
- &outarg, &inode);
+ &outarg, entry, &inode);
fuse_unlock_inode(dir, locked);
if (err == -ENOENT) {
outarg_valid = false;
@@ -582,6 +714,20 @@
/* Userspace expects S_IFREG in create mode */
BUG_ON((mode & S_IFMT) != S_IFREG);
+#ifdef CONFIG_FUSE_BPF
+ {
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(dir, struct fuse_create_open_io,
+ fuse_create_open_initialize,
+ fuse_create_open_backing,
+ fuse_create_open_finalize,
+ dir, entry, file, flags, mode);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+ }
+#endif
+
forget = fuse_alloc_forget();
err = -ENOMEM;
if (!forget)
@@ -811,6 +957,17 @@
struct fuse_mount *fm = get_fuse_mount(dir);
FUSE_ARGS(args);
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(dir, struct fuse_mknod_in,
+ fuse_mknod_initialize, fuse_mknod_backing,
+ fuse_mknod_finalize,
+ dir, entry, mode, rdev);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (!fm->fc->dont_mask)
mode &= ~current_umask();
@@ -840,6 +997,17 @@
struct fuse_mount *fm = get_fuse_mount(dir);
FUSE_ARGS(args);
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(dir, struct fuse_mkdir_in,
+ fuse_mkdir_initialize, fuse_mkdir_backing,
+ fuse_mkdir_finalize,
+ dir, entry, mode);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (!fm->fc->dont_mask)
mode &= ~current_umask();
@@ -862,6 +1030,17 @@
unsigned len = strlen(link) + 1;
FUSE_ARGS(args);
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(dir, struct fuse_dummy_io,
+ fuse_symlink_initialize, fuse_symlink_backing,
+ fuse_symlink_finalize,
+ dir, entry, link, len);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
args.opcode = FUSE_SYMLINK;
args.in_numargs = 2;
args.in_args[0].size = entry->d_name.len + 1;
@@ -896,6 +1075,20 @@
if (fuse_is_bad(dir))
return -EIO;
+#ifdef CONFIG_FUSE_BPF
+ {
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(dir, struct fuse_dummy_io,
+ fuse_unlink_initialize,
+ fuse_unlink_backing,
+ fuse_unlink_finalize,
+ dir, entry);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+ }
+#endif
+
args.opcode = FUSE_UNLINK;
args.nodeid = get_node_id(dir);
args.in_numargs = 1;
@@ -935,6 +1128,20 @@
if (fuse_is_bad(dir))
return -EIO;
+#ifdef CONFIG_FUSE_BPF
+ {
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(dir, struct fuse_dummy_io,
+ fuse_rmdir_initialize,
+ fuse_rmdir_backing,
+ fuse_rmdir_finalize,
+ dir, entry);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+ }
+#endif
+
args.opcode = FUSE_RMDIR;
args.nodeid = get_node_id(dir);
args.in_numargs = 1;
@@ -1020,6 +1227,18 @@
return -EINVAL;
if (flags) {
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(olddir, struct fuse_rename2_in,
+ fuse_rename2_initialize, fuse_rename2_backing,
+ fuse_rename2_finalize,
+ olddir, oldent, newdir, newent, flags);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
+ /* TODO: how should this go with bpfs involved? */
if (fc->no_rename2 || fc->minor < 23)
return -EINVAL;
@@ -1031,6 +1250,17 @@
err = -EINVAL;
}
} else {
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(olddir, struct fuse_rename_in,
+ fuse_rename_initialize, fuse_rename_backing,
+ fuse_rename_finalize,
+ olddir, oldent, newdir, newent);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
err = fuse_rename_common(olddir, oldent, newdir, newent, 0,
FUSE_RENAME,
sizeof(struct fuse_rename_in));
@@ -1048,6 +1278,16 @@
struct fuse_mount *fm = get_fuse_mount(inode);
FUSE_ARGS(args);
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_link_in, fuse_link_initialize,
+ fuse_link_backing, fuse_link_finalize, entry,
+ newdir, newent);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
memset(&inarg, 0, sizeof(inarg));
inarg.oldnodeid = get_node_id(inode);
args.opcode = FUSE_LINK;
@@ -1079,7 +1319,7 @@
return err;
}
-static void fuse_fillattr(struct inode *inode, struct fuse_attr *attr,
+void fuse_fillattr(struct inode *inode, struct fuse_attr *attr,
struct kstat *stat)
{
unsigned int blkbits;
@@ -1148,23 +1388,13 @@
args.out_args[0].size = sizeof(outarg);
args.out_args[0].value = &outarg;
err = fuse_simple_request(fm, &args);
- if (!err) {
- if (fuse_invalid_attr(&outarg.attr) ||
- inode_wrong_type(inode, outarg.attr.mode)) {
- fuse_make_bad(inode);
- err = -EIO;
- } else {
- fuse_change_attributes(inode, &outarg.attr,
- attr_timeout(&outarg),
- attr_version);
- if (stat)
- fuse_fillattr(inode, &outarg.attr, stat);
- }
- }
+ if (!err)
+ err = finalize_attr(inode, &outarg, attr_version, stat);
return err;
}
static int fuse_update_get_attr(struct inode *inode, struct file *file,
+ const struct path *path,
struct kstat *stat, u32 request_mask,
unsigned int flags)
{
@@ -1172,6 +1402,17 @@
int err = 0;
bool sync;
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_getattr_io,
+ fuse_getattr_initialize, fuse_getattr_backing,
+ fuse_getattr_finalize,
+ path->dentry, stat, request_mask, flags);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (flags & AT_STATX_FORCE_SYNC)
sync = true;
else if (flags & AT_STATX_DONT_SYNC)
@@ -1196,7 +1437,7 @@
int fuse_update_attributes(struct inode *inode, struct file *file)
{
/* Do *not* need to get atime for internal purposes */
- return fuse_update_get_attr(inode, file, NULL,
+ return fuse_update_get_attr(inode, file, &file->f_path, NULL,
STATX_BASIC_STATS & ~STATX_ATIME, 0);
}
@@ -1305,6 +1546,16 @@
struct fuse_access_in inarg;
int err;
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_access_in,
+ fuse_access_initialize, fuse_access_backing,
+ fuse_access_finalize, inode, mask);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
BUG_ON(mask & MAY_NOT_BLOCK);
if (fm->fc->no_access)
@@ -1353,6 +1604,10 @@
struct fuse_conn *fc = get_fuse_conn(inode);
bool refreshed = false;
int err = 0;
+ struct fuse_inode *fi = get_fuse_inode(inode);
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+#endif
if (fuse_is_bad(inode))
return -EIO;
@@ -1360,12 +1615,19 @@
if (!fuse_allow_current_process(fc))
return -EACCES;
+#ifdef CONFIG_FUSE_BPF
+ fer = fuse_bpf_backing(inode, struct fuse_access_in,
+ fuse_access_initialize, fuse_access_backing,
+ fuse_access_finalize, inode, mask);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
/*
* If attributes are needed, refresh them before proceeding
*/
if (fc->default_permissions ||
((mask & MAY_EXEC) && S_ISREG(inode->i_mode))) {
- struct fuse_inode *fi = get_fuse_inode(inode);
u32 perm_mask = STATX_MODE | STATX_UID | STATX_GID;
if (perm_mask & READ_ONCE(fi->inval_mask) ||
@@ -1456,6 +1718,21 @@
if (fuse_is_bad(inode))
goto out_err;
+#ifdef CONFIG_FUSE_BPF
+ {
+ struct fuse_err_ret fer;
+ const char *out = NULL;
+
+ fer = fuse_bpf_backing(inode, struct fuse_dummy_io,
+ fuse_get_link_initialize,
+ fuse_get_link_backing,
+ fuse_get_link_finalize,
+ inode, dentry, callback, &out);
+ if (fer.ret)
+ return fer.result ?: out;
+ }
+#endif
+
if (fc->cache_symlinks)
return page_get_link(dentry, inode, callback);
@@ -1489,8 +1766,18 @@
static int fuse_dir_release(struct inode *inode, struct file *file)
{
- fuse_release_common(file, true);
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+ fer = fuse_bpf_backing(inode, struct fuse_release_in,
+ fuse_releasedir_initialize, fuse_release_backing,
+ fuse_release_finalize,
+ inode, file);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
+ fuse_release_common(file, true);
return 0;
}
@@ -1504,6 +1791,19 @@
if (fuse_is_bad(inode))
return -EIO;
+#ifdef CONFIG_FUSE_BPF
+ {
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_fsync_in,
+ fuse_dir_fsync_initialize, fuse_fsync_backing,
+ fuse_fsync_finalize,
+ file, start, end, datasync);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+ }
+#endif
+
if (fc->no_fsyncdir)
return 0;
@@ -1542,58 +1842,6 @@
FUSE_IOCTL_COMPAT | FUSE_IOCTL_DIR);
}
-static bool update_mtime(unsigned ivalid, bool trust_local_mtime)
-{
- /* Always update if mtime is explicitly set */
- if (ivalid & ATTR_MTIME_SET)
- return true;
-
- /* Or if kernel i_mtime is the official one */
- if (trust_local_mtime)
- return true;
-
- /* If it's an open(O_TRUNC) or an ftruncate(), don't update */
- if ((ivalid & ATTR_SIZE) && (ivalid & (ATTR_OPEN | ATTR_FILE)))
- return false;
-
- /* In all other cases update */
- return true;
-}
-
-static void iattr_to_fattr(struct fuse_conn *fc, struct iattr *iattr,
- struct fuse_setattr_in *arg, bool trust_local_cmtime)
-{
- unsigned ivalid = iattr->ia_valid;
-
- if (ivalid & ATTR_MODE)
- arg->valid |= FATTR_MODE, arg->mode = iattr->ia_mode;
- if (ivalid & ATTR_UID)
- arg->valid |= FATTR_UID, arg->uid = from_kuid(fc->user_ns, iattr->ia_uid);
- if (ivalid & ATTR_GID)
- arg->valid |= FATTR_GID, arg->gid = from_kgid(fc->user_ns, iattr->ia_gid);
- if (ivalid & ATTR_SIZE)
- arg->valid |= FATTR_SIZE, arg->size = iattr->ia_size;
- if (ivalid & ATTR_ATIME) {
- arg->valid |= FATTR_ATIME;
- arg->atime = iattr->ia_atime.tv_sec;
- arg->atimensec = iattr->ia_atime.tv_nsec;
- if (!(ivalid & ATTR_ATIME_SET))
- arg->valid |= FATTR_ATIME_NOW;
- }
- if ((ivalid & ATTR_MTIME) && update_mtime(ivalid, trust_local_cmtime)) {
- arg->valid |= FATTR_MTIME;
- arg->mtime = iattr->ia_mtime.tv_sec;
- arg->mtimensec = iattr->ia_mtime.tv_nsec;
- if (!(ivalid & ATTR_MTIME_SET) && !trust_local_cmtime)
- arg->valid |= FATTR_MTIME_NOW;
- }
- if ((ivalid & ATTR_CTIME) && trust_local_cmtime) {
- arg->valid |= FATTR_CTIME;
- arg->ctime = iattr->ia_ctime.tv_sec;
- arg->ctimensec = iattr->ia_ctime.tv_nsec;
- }
-}
-
/*
* Prevent concurrent writepages on inode
*
@@ -1708,6 +1956,16 @@
bool trust_local_cmtime = is_wb && S_ISREG(inode->i_mode);
bool fault_blocked = false;
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_setattr_io,
+ fuse_setattr_initialize, fuse_setattr_backing,
+ fuse_setattr_finalize, dentry, attr, file);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (!fc->default_permissions)
attr->ia_valid |= ATTR_FORCE;
@@ -1882,11 +2140,22 @@
* This should be done on write(), truncate() and chown().
*/
if (!fc->handle_killpriv && !fc->handle_killpriv_v2) {
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
/*
* ia_mode calculation may have used stale i_mode.
* Refresh and recalculate.
*/
- ret = fuse_do_getattr(inode, NULL, file);
+ fer = fuse_bpf_backing(inode, struct fuse_getattr_io,
+ fuse_getattr_initialize, fuse_getattr_backing,
+ fuse_getattr_finalize,
+ entry, NULL, 0, 0);
+ if (fer.ret)
+ ret = PTR_ERR(fer.result);
+ else
+#endif
+ ret = fuse_do_getattr(inode, NULL, file);
if (ret)
return ret;
@@ -1943,7 +2212,8 @@
return -EACCES;
}
- return fuse_update_get_attr(inode, NULL, stat, request_mask, flags);
+ return fuse_update_get_attr(inode, NULL, path, stat, request_mask,
+ flags);
}
static const struct inode_operations fuse_dir_inode_operations = {
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 1a404d3..6149a4b 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -8,6 +8,7 @@
#include "fuse_i.h"
+#include <linux/filter.h>
#include <linux/pagemap.h>
#include <linux/slab.h>
#include <linux/kernel.h>
@@ -240,6 +241,20 @@
if (err)
return err;
+#ifdef CONFIG_FUSE_BPF
+ {
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_open_io,
+ fuse_open_initialize,
+ fuse_open_backing,
+ fuse_open_finalize,
+ inode, file, isdir);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+ }
+#endif
+
if (is_wb_truncate || dax_truncate) {
inode_lock(inode);
fuse_set_nowrite(inode);
@@ -343,6 +358,17 @@
{
struct fuse_conn *fc = get_fuse_conn(inode);
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_release_in,
+ fuse_release_initialize, fuse_release_backing,
+ fuse_release_finalize,
+ inode, file);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
/* see fuse_vma_close() for !writeback_cache case */
if (fc->writeback_cache)
write_inode_now(inode, 1);
@@ -482,6 +508,17 @@
FUSE_ARGS(args);
int err;
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(file->f_inode, struct fuse_flush_in,
+ fuse_flush_initialize, fuse_flush_backing,
+ fuse_flush_finalize,
+ file, id);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (fuse_is_bad(inode))
return -EIO;
@@ -554,6 +591,17 @@
struct fuse_conn *fc = get_fuse_conn(inode);
int err;
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_fsync_in,
+ fuse_fsync_initialize, fuse_fsync_backing,
+ fuse_fsync_finalize,
+ file, start, end, datasync);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (fuse_is_bad(inode))
return -EIO;
@@ -1586,6 +1634,20 @@
if (FUSE_IS_DAX(inode))
return fuse_dax_read_iter(iocb, to);
+#ifdef CONFIG_FUSE_BPF
+ {
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_file_read_iter_io,
+ fuse_file_read_iter_initialize,
+ fuse_file_read_iter_backing,
+ fuse_file_read_iter_finalize,
+ iocb, to);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+ }
+#endif
+
if (ff->passthrough.filp)
return fuse_passthrough_read_iter(iocb, to);
else if (!(ff->open_flags & FOPEN_DIRECT_IO))
@@ -1606,6 +1668,20 @@
if (FUSE_IS_DAX(inode))
return fuse_dax_write_iter(iocb, from);
+#ifdef CONFIG_FUSE_BPF
+ {
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_file_write_iter_io,
+ fuse_file_write_iter_initialize,
+ fuse_file_write_iter_backing,
+ fuse_file_write_iter_finalize,
+ iocb, from);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+ }
+#endif
+
if (ff->passthrough.filp)
return fuse_passthrough_write_iter(iocb, from);
else if (!(ff->open_flags & FOPEN_DIRECT_IO))
@@ -1855,6 +1931,19 @@
struct fuse_file *ff;
int err;
+ /**
+ * TODO - fully understand why this is necessary
+ *
+ * With fuse-bpf, fsstress fails if rename is enabled without this
+ *
+ * We are getting writes here on directory inodes, which do not have an
+ * initialized file list so crash.
+ *
+ * The question is why we are getting those writes
+ */
+ if (!S_ISREG(inode->i_mode))
+ return 0;
+
/*
* Inode is always written before the last reference is dropped and
* hence this should not be reached from reclaim.
@@ -2413,6 +2502,12 @@
if (FUSE_IS_DAX(file_inode(file)))
return fuse_dax_mmap(file, vma);
+#ifdef CONFIG_FUSE_BPF
+ /* TODO - this is simply passthrough, not a proper BPF filter */
+ if (ff->backing_file)
+ return fuse_backing_mmap(file, vma);
+#endif
+
if (ff->passthrough.filp)
return fuse_passthrough_mmap(file, vma);
@@ -2661,6 +2756,17 @@
{
loff_t retval;
struct inode *inode = file_inode(file);
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_lseek_io,
+ fuse_lseek_initialize,
+ fuse_lseek_backing,
+ fuse_lseek_finalize,
+ file, offset, whence);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
switch (whence) {
case SEEK_SET:
@@ -2951,6 +3057,18 @@
(!(mode & FALLOC_FL_KEEP_SIZE) ||
(mode & (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_ZERO_RANGE)));
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_fallocate_in,
+ fuse_file_fallocate_initialize,
+ fuse_file_fallocate_backing,
+ fuse_file_fallocate_finalize,
+ file, mode, offset, length);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE |
FALLOC_FL_ZERO_RANGE))
return -EOPNOTSUPP;
@@ -3056,6 +3174,18 @@
bool is_unstable = (!fc->writeback_cache) &&
((pos_out + len) > inode_out->i_size);
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(file_in->f_inode, struct fuse_copy_file_range_io,
+ fuse_copy_file_range_initialize,
+ fuse_copy_file_range_backing,
+ fuse_copy_file_range_finalize,
+ file_in, pos_in, file_out, pos_out, len, flags);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (fc->no_copy_file_range)
return -EOPNOTSUPP;
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index 5071a98..ead1b46 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -13,6 +13,9 @@
# define pr_fmt(fmt) "fuse: " fmt
#endif
+#include <linux/android_fuse.h>
+#include <linux/filter.h>
+#include <linux/pagemap.h>
#include <linux/fuse.h>
#include <linux/fs.h>
#include <linux/mount.h>
@@ -31,6 +34,9 @@
#include <linux/pid_namespace.h>
#include <linux/refcount.h>
#include <linux/user_namespace.h>
+#include <linux/statfs.h>
+
+#define FUSE_SUPER_MAGIC 0x65735546
/** Default max number of pages that can be used in a single read request */
#define FUSE_DEFAULT_MAX_PAGES_PER_REQ 32
@@ -63,11 +69,57 @@
struct fuse_forget_link *next;
};
+/** FUSE specific dentry data */
+#if BITS_PER_LONG < 64 || defined(CONFIG_FUSE_BPF)
+struct fuse_dentry {
+ union {
+ u64 time;
+ struct rcu_head rcu;
+ };
+ struct path backing_path;
+};
+
+static inline struct fuse_dentry *get_fuse_dentry(const struct dentry *entry)
+{
+ return entry->d_fsdata;
+}
+#endif
+
+#ifdef CONFIG_FUSE_BPF
+static inline void get_fuse_backing_path(const struct dentry *d,
+ struct path *path)
+{
+ struct fuse_dentry *di = get_fuse_dentry(d);
+
+ if (!di) {
+ *path = (struct path) {};
+ return;
+ }
+
+ *path = di->backing_path;
+ path_get(path);
+}
+#endif
+
/** FUSE inode */
struct fuse_inode {
/** Inode data */
struct inode inode;
+#ifdef CONFIG_FUSE_BPF
+ /**
+ * Backing inode, if this inode is from a backing file system.
+ * If this is set, nodeid is 0.
+ */
+ struct inode *backing_inode;
+
+ /**
+ * bpf_prog, run on all operations to determine whether to pass through
+ * or handle in place
+ */
+ struct bpf_prog *bpf;
+#endif
+
/** Unique ID, which identifies the inode between userspace
* and kernel */
u64 nodeid;
@@ -232,6 +284,14 @@
/** Container for data related to the passthrough functionality */
struct fuse_passthrough passthrough;
+#ifdef CONFIG_FUSE_BPF
+ /**
+ * TODO: Reconcile with passthrough file
+ * backing file when in bpf mode
+ */
+ struct file *backing_file;
+#endif
+
/** RB node to be linked on fuse_conn->polled_files */
struct rb_node polled_node;
@@ -263,6 +323,7 @@
struct fuse_args {
uint64_t nodeid;
uint32_t opcode;
+ uint32_t error_in;
unsigned short in_numargs;
unsigned short out_numargs;
bool force:1;
@@ -275,8 +336,8 @@
bool page_zeroing:1;
bool page_replace:1;
bool may_block:1;
- struct fuse_in_arg in_args[3];
- struct fuse_arg out_args[2];
+ struct fuse_in_arg in_args[FUSE_MAX_IN_ARGS];
+ struct fuse_arg out_args[FUSE_MAX_OUT_ARGS];
void (*end)(struct fuse_mount *fm, struct fuse_args *args, int error);
/* Path used for completing d_canonical_path */
@@ -514,9 +575,12 @@
bool no_force_umount:1;
bool legacy_opts_show:1;
bool dax:1;
+ bool no_daemon:1;
unsigned int max_read;
unsigned int blksize;
const char *subtype;
+ struct bpf_prog *root_bpf;
+ struct file *root_dir;
/* DAX device, may be NULL */
struct dax_device *dax_dev;
@@ -787,6 +851,9 @@
/* Initialize security xattrs when creating a new inode */
unsigned int init_security:1;
+ /** BPF Only, no Daemon running */
+ unsigned int no_daemon:1;
+
/** The number of requests waiting for completion */
atomic_t num_waiting;
@@ -958,14 +1025,18 @@
extern const struct dentry_operations fuse_root_dentry_operations;
/**
- * Get a filled in inode
+ * Get a filled-in inode
*/
+struct inode *fuse_iget_backing(struct super_block *sb,
+ u64 nodeid,
+ struct inode *backing_inode);
struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
int generation, struct fuse_attr *attr,
u64 attr_valid, u64 attr_version);
int fuse_lookup_name(struct super_block *sb, u64 nodeid, const struct qstr *name,
- struct fuse_entry_out *outarg, struct inode **inode);
+ struct fuse_entry_out *outarg,
+ struct dentry *entry, struct inode **inode);
/**
* Send FORGET command
@@ -1002,7 +1073,6 @@
void fuse_read_args_fill(struct fuse_io_args *ia, struct file *file, loff_t pos,
size_t count, int opcode);
-
/**
* Send OPEN or OPENDIR request
*/
@@ -1072,7 +1142,7 @@
void fuse_dev_cleanup(void);
int fuse_ctl_init(void);
-void __exit fuse_ctl_cleanup(void);
+void fuse_ctl_cleanup(void);
/**
* Simple request sending that does request allocation and freeing
@@ -1100,6 +1170,7 @@
void fuse_invalidate_atime(struct inode *inode);
u64 entry_attr_timeout(struct fuse_entry_out *o);
+void fuse_init_dentry_root(struct dentry *root, struct file *backing_dir);
void fuse_change_entry_timeout(struct dentry *entry, struct fuse_entry_out *o);
/**
@@ -1311,6 +1382,7 @@
unsigned int open_flags, fl_owner_t id, bool isdir);
/* passthrough.c */
+void fuse_copyattr(struct file *dst_file, struct file *src_file);
int fuse_passthrough_open(struct fuse_dev *fud, u32 lower_fd);
int fuse_passthrough_setup(struct fuse_conn *fc, struct fuse_file *ff,
struct fuse_open_out *openarg);
@@ -1319,4 +1391,637 @@
ssize_t fuse_passthrough_write_iter(struct kiocb *iocb, struct iov_iter *from);
ssize_t fuse_passthrough_mmap(struct file *file, struct vm_area_struct *vma);
+/* backing.c */
+
+/*
+ * Dummy io passed to fuse_bpf_backing when io operation needs no scratch space
+ */
+struct fuse_dummy_io {
+ int unused;
+};
+
+struct fuse_open_io {
+ struct fuse_open_in foi;
+ struct fuse_open_out foo;
+};
+
+int fuse_open_initialize(struct fuse_bpf_args *fa, struct fuse_open_io *foi,
+ struct inode *inode, struct file *file, bool isdir);
+int fuse_open_backing(struct fuse_bpf_args *fa,
+ struct inode *inode, struct file *file, bool isdir);
+void *fuse_open_finalize(struct fuse_bpf_args *fa,
+ struct inode *inode, struct file *file, bool isdir);
+
+struct fuse_create_open_io {
+ struct fuse_create_in fci;
+ struct fuse_entry_out feo;
+ struct fuse_open_out foo;
+};
+
+int fuse_create_open_initialize(
+ struct fuse_bpf_args *fa, struct fuse_create_open_io *fcoi,
+ struct inode *dir, struct dentry *entry,
+ struct file *file, unsigned int flags, umode_t mode);
+int fuse_create_open_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry,
+ struct file *file, unsigned int flags, umode_t mode);
+void *fuse_create_open_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry,
+ struct file *file, unsigned int flags, umode_t mode);
+
+int fuse_mknod_initialize(
+ struct fuse_bpf_args *fa, struct fuse_mknod_in *fmi,
+ struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev);
+int fuse_mknod_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev);
+void *fuse_mknod_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, umode_t mode, dev_t rdev);
+
+int fuse_mkdir_initialize(
+ struct fuse_bpf_args *fa, struct fuse_mkdir_in *fmi,
+ struct inode *dir, struct dentry *entry, umode_t mode);
+int fuse_mkdir_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, umode_t mode);
+void *fuse_mkdir_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, umode_t mode);
+
+int fuse_rmdir_initialize(
+ struct fuse_bpf_args *fa, struct fuse_dummy_io *fmi,
+ struct inode *dir, struct dentry *entry);
+int fuse_rmdir_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry);
+void *fuse_rmdir_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry);
+
+int fuse_rename2_initialize(struct fuse_bpf_args *fa, struct fuse_rename2_in *fri,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent,
+ unsigned int flags);
+int fuse_rename2_backing(struct fuse_bpf_args *fa,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent,
+ unsigned int flags);
+void *fuse_rename2_finalize(struct fuse_bpf_args *fa,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent,
+ unsigned int flags);
+
+int fuse_rename_initialize(struct fuse_bpf_args *fa, struct fuse_rename_in *fri,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent);
+int fuse_rename_backing(struct fuse_bpf_args *fa,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent);
+void *fuse_rename_finalize(struct fuse_bpf_args *fa,
+ struct inode *olddir, struct dentry *oldent,
+ struct inode *newdir, struct dentry *newent);
+
+int fuse_unlink_initialize(
+ struct fuse_bpf_args *fa, struct fuse_dummy_io *fmi,
+ struct inode *dir, struct dentry *entry);
+int fuse_unlink_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry);
+void *fuse_unlink_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry);
+
+int fuse_link_initialize(struct fuse_bpf_args *fa, struct fuse_link_in *fli,
+ struct dentry *entry, struct inode *dir,
+ struct dentry *newent);
+int fuse_link_backing(struct fuse_bpf_args *fa, struct dentry *entry,
+ struct inode *dir, struct dentry *newent);
+void *fuse_link_finalize(struct fuse_bpf_args *fa, struct dentry *entry,
+ struct inode *dir, struct dentry *newent);
+
+int fuse_release_initialize(struct fuse_bpf_args *fa, struct fuse_release_in *fri,
+ struct inode *inode, struct file *file);
+int fuse_releasedir_initialize(struct fuse_bpf_args *fa,
+ struct fuse_release_in *fri,
+ struct inode *inode, struct file *file);
+int fuse_release_backing(struct fuse_bpf_args *fa,
+ struct inode *inode, struct file *file);
+void *fuse_release_finalize(struct fuse_bpf_args *fa,
+ struct inode *inode, struct file *file);
+
+int fuse_flush_initialize(struct fuse_bpf_args *fa, struct fuse_flush_in *ffi,
+ struct file *file, fl_owner_t id);
+int fuse_flush_backing(struct fuse_bpf_args *fa, struct file *file, fl_owner_t id);
+void *fuse_flush_finalize(struct fuse_bpf_args *fa,
+ struct file *file, fl_owner_t id);
+
+struct fuse_lseek_io {
+ struct fuse_lseek_in fli;
+ struct fuse_lseek_out flo;
+};
+
+int fuse_lseek_initialize(struct fuse_bpf_args *fa, struct fuse_lseek_io *fli,
+ struct file *file, loff_t offset, int whence);
+int fuse_lseek_backing(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence);
+void *fuse_lseek_finalize(struct fuse_bpf_args *fa, struct file *file, loff_t offset, int whence);
+
+struct fuse_copy_file_range_io {
+ struct fuse_copy_file_range_in fci;
+ struct fuse_write_out fwo;
+};
+
+int fuse_copy_file_range_initialize(struct fuse_bpf_args *fa,
+ struct fuse_copy_file_range_io *fcf,
+ struct file *file_in, loff_t pos_in,
+ struct file *file_out, loff_t pos_out,
+ size_t len, unsigned int flags);
+int fuse_copy_file_range_backing(struct fuse_bpf_args *fa,
+ struct file *file_in, loff_t pos_in,
+ struct file *file_out, loff_t pos_out,
+ size_t len, unsigned int flags);
+void *fuse_copy_file_range_finalize(struct fuse_bpf_args *fa,
+ struct file *file_in, loff_t pos_in,
+ struct file *file_out, loff_t pos_out,
+ size_t len, unsigned int flags);
+
+int fuse_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+ struct file *file, loff_t start, loff_t end, int datasync);
+int fuse_fsync_backing(struct fuse_bpf_args *fa,
+ struct file *file, loff_t start, loff_t end, int datasync);
+void *fuse_fsync_finalize(struct fuse_bpf_args *fa,
+ struct file *file, loff_t start, loff_t end, int datasync);
+int fuse_dir_fsync_initialize(struct fuse_bpf_args *fa, struct fuse_fsync_in *ffi,
+ struct file *file, loff_t start, loff_t end, int datasync);
+
+struct fuse_getxattr_io {
+ struct fuse_getxattr_in fgi;
+ struct fuse_getxattr_out fgo;
+};
+
+int fuse_getxattr_initialize(
+ struct fuse_bpf_args *fa, struct fuse_getxattr_io *fgio,
+ struct dentry *dentry, const char *name, void *value,
+ size_t size);
+int fuse_getxattr_backing(
+ struct fuse_bpf_args *fa,
+ struct dentry *dentry, const char *name, void *value,
+ size_t size);
+void *fuse_getxattr_finalize(
+ struct fuse_bpf_args *fa,
+ struct dentry *dentry, const char *name, void *value,
+ size_t size);
+
+int fuse_listxattr_initialize(struct fuse_bpf_args *fa,
+ struct fuse_getxattr_io *fgio,
+ struct dentry *dentry, char *list, size_t size);
+int fuse_listxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+ char *list, size_t size);
+void *fuse_listxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+ char *list, size_t size);
+
+int fuse_setxattr_initialize(struct fuse_bpf_args *fa,
+ struct fuse_setxattr_in *fsxi,
+ struct dentry *dentry, const char *name,
+ const void *value, size_t size, int flags);
+int fuse_setxattr_backing(struct fuse_bpf_args *fa, struct dentry *dentry,
+ const char *name, const void *value, size_t size,
+ int flags);
+void *fuse_setxattr_finalize(struct fuse_bpf_args *fa, struct dentry *dentry,
+ const char *name, const void *value, size_t size,
+ int flags);
+
+int fuse_removexattr_initialize(struct fuse_bpf_args *fa,
+ struct fuse_dummy_io *unused,
+ struct dentry *dentry, const char *name);
+int fuse_removexattr_backing(struct fuse_bpf_args *fa,
+ struct dentry *dentry, const char *name);
+void *fuse_removexattr_finalize(struct fuse_bpf_args *fa,
+ struct dentry *dentry, const char *name);
+
+struct fuse_read_iter_out {
+ uint64_t ret;
+};
+struct fuse_file_read_iter_io {
+ struct fuse_read_in fri;
+ struct fuse_read_iter_out frio;
+};
+
+int fuse_file_read_iter_initialize(
+ struct fuse_bpf_args *fa, struct fuse_file_read_iter_io *fri,
+ struct kiocb *iocb, struct iov_iter *to);
+int fuse_file_read_iter_backing(struct fuse_bpf_args *fa,
+ struct kiocb *iocb, struct iov_iter *to);
+void *fuse_file_read_iter_finalize(struct fuse_bpf_args *fa,
+ struct kiocb *iocb, struct iov_iter *to);
+
+struct fuse_write_iter_out {
+ uint64_t ret;
+};
+struct fuse_file_write_iter_io {
+ struct fuse_write_in fwi;
+ struct fuse_write_out fwo;
+ struct fuse_write_iter_out fwio;
+};
+
+int fuse_file_write_iter_initialize(
+ struct fuse_bpf_args *fa, struct fuse_file_write_iter_io *fwio,
+ struct kiocb *iocb, struct iov_iter *from);
+int fuse_file_write_iter_backing(struct fuse_bpf_args *fa,
+ struct kiocb *iocb, struct iov_iter *from);
+void *fuse_file_write_iter_finalize(struct fuse_bpf_args *fa,
+ struct kiocb *iocb, struct iov_iter *from);
+
+ssize_t fuse_backing_mmap(struct file *file, struct vm_area_struct *vma);
+
+int fuse_file_fallocate_initialize(struct fuse_bpf_args *fa,
+ struct fuse_fallocate_in *ffi,
+ struct file *file, int mode, loff_t offset, loff_t length);
+int fuse_file_fallocate_backing(struct fuse_bpf_args *fa,
+ struct file *file, int mode, loff_t offset, loff_t length);
+void *fuse_file_fallocate_finalize(struct fuse_bpf_args *fa,
+ struct file *file, int mode, loff_t offset, loff_t length);
+
+struct fuse_lookup_io {
+ struct fuse_entry_out feo;
+ struct fuse_entry_bpf feb;
+};
+
+int fuse_handle_backing(struct fuse_entry_bpf *feb, struct inode **backing_inode,
+ struct path *backing_path);
+int fuse_handle_bpf_prog(struct fuse_entry_bpf *feb, struct inode *parent,
+ struct bpf_prog **bpf);
+
+int fuse_lookup_initialize(struct fuse_bpf_args *fa, struct fuse_lookup_io *feo,
+ struct inode *dir, struct dentry *entry, unsigned int flags);
+int fuse_lookup_backing(struct fuse_bpf_args *fa, struct inode *dir,
+ struct dentry *entry, unsigned int flags);
+struct dentry *fuse_lookup_finalize(struct fuse_bpf_args *fa, struct inode *dir,
+ struct dentry *entry, unsigned int flags);
+int fuse_revalidate_backing(struct dentry *entry, unsigned int flags);
+
+int fuse_canonical_path_initialize(struct fuse_bpf_args *fa,
+ struct fuse_dummy_io *fdi,
+ const struct path *path,
+ struct path *canonical_path);
+int fuse_canonical_path_backing(struct fuse_bpf_args *fa, const struct path *path,
+ struct path *canonical_path);
+void *fuse_canonical_path_finalize(struct fuse_bpf_args *fa,
+ const struct path *path,
+ struct path *canonical_path);
+
+struct fuse_getattr_io {
+ struct fuse_getattr_in fgi;
+ struct fuse_attr_out fao;
+};
+int fuse_getattr_initialize(struct fuse_bpf_args *fa, struct fuse_getattr_io *fgio,
+ const struct dentry *entry, struct kstat *stat,
+ u32 request_mask, unsigned int flags);
+int fuse_getattr_backing(struct fuse_bpf_args *fa,
+ const struct dentry *entry, struct kstat *stat,
+ u32 request_mask, unsigned int flags);
+void *fuse_getattr_finalize(struct fuse_bpf_args *fa,
+ const struct dentry *entry, struct kstat *stat,
+ u32 request_mask, unsigned int flags);
+
+struct fuse_setattr_io {
+ struct fuse_setattr_in fsi;
+ struct fuse_attr_out fao;
+};
+
+int fuse_setattr_initialize(struct fuse_bpf_args *fa, struct fuse_setattr_io *fsi,
+ struct dentry *dentry, struct iattr *attr, struct file *file);
+int fuse_setattr_backing(struct fuse_bpf_args *fa,
+ struct dentry *dentry, struct iattr *attr, struct file *file);
+void *fuse_setattr_finalize(struct fuse_bpf_args *fa,
+ struct dentry *dentry, struct iattr *attr, struct file *file);
+
+int fuse_statfs_initialize(struct fuse_bpf_args *fa, struct fuse_statfs_out *fso,
+ struct dentry *dentry, struct kstatfs *buf);
+int fuse_statfs_backing(struct fuse_bpf_args *fa,
+ struct dentry *dentry, struct kstatfs *buf);
+void *fuse_statfs_finalize(struct fuse_bpf_args *fa,
+ struct dentry *dentry, struct kstatfs *buf);
+
+int fuse_get_link_initialize(struct fuse_bpf_args *fa, struct fuse_dummy_io *dummy,
+ struct inode *inode, struct dentry *dentry,
+ struct delayed_call *callback, const char **out);
+int fuse_get_link_backing(struct fuse_bpf_args *fa,
+ struct inode *inode, struct dentry *dentry,
+ struct delayed_call *callback, const char **out);
+void *fuse_get_link_finalize(struct fuse_bpf_args *fa,
+ struct inode *inode, struct dentry *dentry,
+ struct delayed_call *callback, const char **out);
+
+int fuse_symlink_initialize(
+ struct fuse_bpf_args *fa, struct fuse_dummy_io *unused,
+ struct inode *dir, struct dentry *entry, const char *link, int len);
+int fuse_symlink_backing(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, const char *link, int len);
+void *fuse_symlink_finalize(
+ struct fuse_bpf_args *fa,
+ struct inode *dir, struct dentry *entry, const char *link, int len);
+
+struct fuse_read_io {
+ struct fuse_read_in fri;
+ struct fuse_read_out fro;
+};
+
+int fuse_readdir_initialize(struct fuse_bpf_args *fa, struct fuse_read_io *frio,
+ struct file *file, struct dir_context *ctx,
+ bool *force_again, bool *allow_force, bool is_continued);
+int fuse_readdir_backing(struct fuse_bpf_args *fa,
+ struct file *file, struct dir_context *ctx,
+ bool *force_again, bool *allow_force, bool is_continued);
+void *fuse_readdir_finalize(struct fuse_bpf_args *fa,
+ struct file *file, struct dir_context *ctx,
+ bool *force_again, bool *allow_force, bool is_continued);
+
+int fuse_access_initialize(struct fuse_bpf_args *fa, struct fuse_access_in *fai,
+ struct inode *inode, int mask);
+int fuse_access_backing(struct fuse_bpf_args *fa, struct inode *inode, int mask);
+void *fuse_access_finalize(struct fuse_bpf_args *fa, struct inode *inode, int mask);
+
+/*
+ * FUSE caches dentries and attributes with separate timeout. The
+ * time in jiffies until the dentry/attributes are valid is stored in
+ * dentry->d_fsdata and fuse_inode->i_time respectively.
+ */
+
+/*
+ * Calculate the time in jiffies until a dentry/attributes are valid
+ */
+static inline u64 time_to_jiffies(u64 sec, u32 nsec)
+{
+ if (sec || nsec) {
+ struct timespec64 ts = {
+ sec,
+ min_t(u32, nsec, NSEC_PER_SEC - 1)
+ };
+
+ return get_jiffies_64() + timespec64_to_jiffies(&ts);
+ } else
+ return 0;
+}
+
+static inline u64 attr_timeout(struct fuse_attr_out *o)
+{
+ return time_to_jiffies(o->attr_valid, o->attr_valid_nsec);
+}
+
+static inline bool update_mtime(unsigned int ivalid, bool trust_local_mtime)
+{
+ /* Always update if mtime is explicitly set */
+ if (ivalid & ATTR_MTIME_SET)
+ return true;
+
+ /* Or if kernel i_mtime is the official one */
+ if (trust_local_mtime)
+ return true;
+
+ /* If it's an open(O_TRUNC) or an ftruncate(), don't update */
+ if ((ivalid & ATTR_SIZE) && (ivalid & (ATTR_OPEN | ATTR_FILE)))
+ return false;
+
+ /* In all other cases update */
+ return true;
+}
+
+void fuse_fillattr(struct inode *inode, struct fuse_attr *attr,
+ struct kstat *stat);
+
+static inline void iattr_to_fattr(struct fuse_conn *fc, struct iattr *iattr,
+ struct fuse_setattr_in *arg, bool trust_local_cmtime)
+{
+ unsigned int ivalid = iattr->ia_valid;
+
+ if (ivalid & ATTR_MODE)
+ arg->valid |= FATTR_MODE, arg->mode = iattr->ia_mode;
+ if (ivalid & ATTR_UID)
+ arg->valid |= FATTR_UID, arg->uid = from_kuid(fc->user_ns, iattr->ia_uid);
+ if (ivalid & ATTR_GID)
+ arg->valid |= FATTR_GID, arg->gid = from_kgid(fc->user_ns, iattr->ia_gid);
+ if (ivalid & ATTR_SIZE)
+ arg->valid |= FATTR_SIZE, arg->size = iattr->ia_size;
+ if (ivalid & ATTR_ATIME) {
+ arg->valid |= FATTR_ATIME;
+ arg->atime = iattr->ia_atime.tv_sec;
+ arg->atimensec = iattr->ia_atime.tv_nsec;
+ if (!(ivalid & ATTR_ATIME_SET))
+ arg->valid |= FATTR_ATIME_NOW;
+ }
+ if ((ivalid & ATTR_MTIME) && update_mtime(ivalid, trust_local_cmtime)) {
+ arg->valid |= FATTR_MTIME;
+ arg->mtime = iattr->ia_mtime.tv_sec;
+ arg->mtimensec = iattr->ia_mtime.tv_nsec;
+ if (!(ivalid & ATTR_MTIME_SET) && !trust_local_cmtime)
+ arg->valid |= FATTR_MTIME_NOW;
+ }
+ if ((ivalid & ATTR_CTIME) && trust_local_cmtime) {
+ arg->valid |= FATTR_CTIME;
+ arg->ctime = iattr->ia_ctime.tv_sec;
+ arg->ctimensec = iattr->ia_ctime.tv_nsec;
+ }
+}
+
+static inline int finalize_attr(struct inode *inode, struct fuse_attr_out *outarg,
+ u64 attr_version, struct kstat *stat)
+{
+ int err = 0;
+
+ if (fuse_invalid_attr(&outarg->attr) ||
+ ((inode->i_mode ^ outarg->attr.mode) & S_IFMT)) {
+ fuse_make_bad(inode);
+ err = -EIO;
+ } else {
+ fuse_change_attributes(inode, &outarg->attr,
+ attr_timeout(outarg),
+ attr_version);
+ if (stat)
+ fuse_fillattr(inode, &outarg->attr, stat);
+ }
+ return err;
+}
+
+static inline void convert_statfs_to_fuse(struct fuse_kstatfs *attr, struct kstatfs *stbuf)
+{
+ attr->bsize = stbuf->f_bsize;
+ attr->frsize = stbuf->f_frsize;
+ attr->blocks = stbuf->f_blocks;
+ attr->bfree = stbuf->f_bfree;
+ attr->bavail = stbuf->f_bavail;
+ attr->files = stbuf->f_files;
+ attr->ffree = stbuf->f_ffree;
+ attr->namelen = stbuf->f_namelen;
+ /* fsid is left zero */
+}
+
+static inline void convert_fuse_statfs(struct kstatfs *stbuf, struct fuse_kstatfs *attr)
+{
+ stbuf->f_type = FUSE_SUPER_MAGIC;
+ stbuf->f_bsize = attr->bsize;
+ stbuf->f_frsize = attr->frsize;
+ stbuf->f_blocks = attr->blocks;
+ stbuf->f_bfree = attr->bfree;
+ stbuf->f_bavail = attr->bavail;
+ stbuf->f_files = attr->files;
+ stbuf->f_ffree = attr->ffree;
+ stbuf->f_namelen = attr->namelen;
+ /* fsid is left zero */
+}
+
+#ifdef CONFIG_FUSE_BPF
+struct fuse_err_ret {
+ void *result;
+ bool ret;
+};
+
+int __init fuse_bpf_init(void);
+void __exit fuse_bpf_cleanup(void);
+
+ssize_t fuse_bpf_simple_request(struct fuse_mount *fm, struct fuse_bpf_args *args);
+
+/*
+ * expression statement to wrap the backing filter logic
+ * struct inode *inode: inode with bpf and backing inode
+ * typedef io: (typically complex) type whose components fuse_args can point to.
+ * An instance of this type is created locally and passed to initialize
+ * void initialize(struct fuse_bpf_args *fa, io *in_out, args...): function that sets
+ * up fa and io based on args
+ * int backing(struct fuse_bpf_args *fa, args...): function that actually performs
+ * the backing io operation
+ * void *finalize(struct fuse_bpf_args *, args...): function that performs any final
+ * work needed to commit the backing io
+ */
+#define fuse_bpf_backing(inode, io, initialize, backing, finalize, \
+ args...) \
+({ \
+ struct fuse_err_ret fer = {0}; \
+ int ext_flags; \
+ struct fuse_inode *fuse_inode = get_fuse_inode(inode); \
+ struct fuse_mount *fm = get_fuse_mount(inode); \
+ io feo = {0}; \
+ struct fuse_bpf_args fa = {0}, fa_backup = {0}; \
+ bool locked; \
+ ssize_t res; \
+ void *err; \
+ int i; \
+ bool initialized = false; \
+ \
+ do { \
+ if (!fuse_inode || !fuse_inode->backing_inode) \
+ break; \
+ \
+ err = ERR_PTR(initialize(&fa, &feo, args)); \
+ if (err) { \
+ fer = (struct fuse_err_ret) { \
+ err, \
+ true, \
+ }; \
+ break; \
+ } \
+ initialized = true; \
+ \
+ fa_backup = fa; \
+ fa.opcode |= FUSE_PREFILTER; \
+ for (i = 0; i < fa.in_numargs; ++i) \
+ fa.out_args[i] = (struct fuse_bpf_arg) { \
+ .size = fa.in_args[i].size, \
+ .value = (void *)fa.in_args[i].value, \
+ }; \
+ fa.out_numargs = fa.in_numargs; \
+ \
+ ext_flags = fuse_inode->bpf ? \
+ bpf_prog_run(fuse_inode->bpf, &fa) : \
+ FUSE_BPF_BACKING; \
+ if (ext_flags < 0) { \
+ fer = (struct fuse_err_ret) { \
+ ERR_PTR(ext_flags), \
+ true, \
+ }; \
+ break; \
+ } \
+ \
+ if (ext_flags & FUSE_BPF_USER_FILTER) { \
+ locked = fuse_lock_inode(inode); \
+ res = fuse_bpf_simple_request(fm, &fa); \
+ fuse_unlock_inode(inode, locked); \
+ if (res < 0) { \
+ fer = (struct fuse_err_ret) { \
+ ERR_PTR(res), \
+ true, \
+ }; \
+ break; \
+ } \
+ } \
+ \
+ if (!(ext_flags & FUSE_BPF_BACKING)) \
+ break; \
+ \
+ fa.opcode &= ~FUSE_PREFILTER; \
+ for (i = 0; i < fa.in_numargs; ++i) \
+ fa.in_args[i] = (struct fuse_bpf_in_arg) { \
+ .size = fa.out_args[i].size, \
+ .value = fa.out_args[i].value, \
+ }; \
+ for (i = 0; i < fa_backup.out_numargs; ++i) \
+ fa.out_args[i] = (struct fuse_bpf_arg) { \
+ .size = fa_backup.out_args[i].size, \
+ .value = fa_backup.out_args[i].value, \
+ }; \
+ fa.out_numargs = fa_backup.out_numargs; \
+ \
+ fer = (struct fuse_err_ret) { \
+ ERR_PTR(backing(&fa, args)), \
+ true, \
+ }; \
+ if (IS_ERR(fer.result)) \
+ fa.error_in = PTR_ERR(fer.result); \
+ if (!(ext_flags & FUSE_BPF_POST_FILTER)) \
+ break; \
+ \
+ fa.opcode |= FUSE_POSTFILTER; \
+ for (i = 0; i < fa.out_numargs; ++i) \
+ fa.in_args[fa.in_numargs++] = \
+ (struct fuse_bpf_in_arg) { \
+ .size = fa.out_args[i].size, \
+ .value = fa.out_args[i].value, \
+ }; \
+ ext_flags = bpf_prog_run(fuse_inode->bpf, &fa); \
+ if (ext_flags < 0) { \
+ fer = (struct fuse_err_ret) { \
+ ERR_PTR(ext_flags), \
+ true, \
+ }; \
+ break; \
+ } \
+ if (!(ext_flags & FUSE_BPF_USER_FILTER)) \
+ break; \
+ \
+ fa.out_args[0].size = fa_backup.out_args[0].size; \
+ fa.out_args[1].size = fa_backup.out_args[1].size; \
+ fa.out_numargs = fa_backup.out_numargs; \
+ locked = fuse_lock_inode(inode); \
+ res = fuse_bpf_simple_request(fm, &fa); \
+ fuse_unlock_inode(inode, locked); \
+ if (res < 0) { \
+ fer.result = ERR_PTR(res); \
+ break; \
+ } \
+ } while (false); \
+ \
+ if (initialized && fer.ret) { \
+ err = finalize(&fa, args); \
+ if (err) \
+ fer.result = err; \
+ } \
+ \
+ fer; \
+})
+
+#endif /* CONFIG_FUSE_BPF */
+
#endif /* _FS_FUSE_I_H */
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 2ec1d5d..75902be 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -51,8 +51,6 @@
"Global limit for the maximum congestion threshold an "
"unprivileged user can set");
-#define FUSE_SUPER_MAGIC 0x65735546
-
#define FUSE_DEFAULT_BLKSIZE 512
/** Maximum number of outstanding background requests */
@@ -80,6 +78,10 @@
fi->i_time = 0;
fi->inval_mask = 0;
+#ifdef CONFIG_FUSE_BPF
+ fi->backing_inode = NULL;
+ fi->bpf = NULL;
+#endif
fi->nodeid = 0;
fi->nlookup = 0;
fi->attr_version = 0;
@@ -122,6 +124,12 @@
/* Will write inode on close/munmap and in all other dirtiers */
WARN_ON(inode->i_state & I_DIRTY_INODE);
+#ifdef CONFIG_FUSE_BPF
+ iput(fi->backing_inode);
+ if (fi->bpf)
+ bpf_prog_put(fi->bpf);
+ fi->bpf = NULL;
+#endif
truncate_inode_pages_final(&inode->i_data);
clear_inode(inode);
if (inode->i_sb->s_flags & SB_ACTIVE) {
@@ -164,6 +172,28 @@
return ino;
}
+static void fuse_fill_attr_from_inode(struct fuse_attr *attr,
+ const struct inode *inode)
+{
+ *attr = (struct fuse_attr){
+ .ino = inode->i_ino,
+ .size = inode->i_size,
+ .blocks = inode->i_blocks,
+ .atime = inode->i_atime.tv_sec,
+ .mtime = inode->i_mtime.tv_sec,
+ .ctime = inode->i_ctime.tv_sec,
+ .atimensec = inode->i_atime.tv_nsec,
+ .mtimensec = inode->i_mtime.tv_nsec,
+ .ctimensec = inode->i_ctime.tv_nsec,
+ .mode = inode->i_mode,
+ .nlink = inode->i_nlink,
+ .uid = inode->i_uid.val,
+ .gid = inode->i_gid.val,
+ .rdev = inode->i_rdev,
+ .blksize = 1u << inode->i_blkbits,
+ };
+}
+
void fuse_change_attributes_common(struct inode *inode, struct fuse_attr *attr,
u64 attr_valid)
{
@@ -298,28 +328,104 @@
else if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode) ||
S_ISFIFO(inode->i_mode) || S_ISSOCK(inode->i_mode)) {
fuse_init_common(inode);
- init_special_inode(inode, inode->i_mode,
- new_decode_dev(attr->rdev));
+ init_special_inode(inode, inode->i_mode, attr->rdev);
} else
BUG();
}
+struct fuse_inode_identifier {
+ u64 nodeid;
+ struct inode *backing_inode;
+};
+
static int fuse_inode_eq(struct inode *inode, void *_nodeidp)
{
- u64 nodeid = *(u64 *) _nodeidp;
- if (get_node_id(inode) == nodeid)
- return 1;
- else
- return 0;
+ struct fuse_inode_identifier *fii =
+ (struct fuse_inode_identifier *) _nodeidp;
+ struct fuse_inode *fi = get_fuse_inode(inode);
+
+ return fii->nodeid == fi->nodeid;
+}
+
+static int fuse_inode_backing_eq(struct inode *inode, void *_nodeidp)
+{
+ struct fuse_inode_identifier *fii =
+ (struct fuse_inode_identifier *) _nodeidp;
+ struct fuse_inode *fi = get_fuse_inode(inode);
+
+ return fii->nodeid == fi->nodeid
+#ifdef CONFIG_FUSE_BPF
+ && fii->backing_inode == fi->backing_inode
+#endif
+ ;
}
static int fuse_inode_set(struct inode *inode, void *_nodeidp)
{
- u64 nodeid = *(u64 *) _nodeidp;
- get_fuse_inode(inode)->nodeid = nodeid;
+ struct fuse_inode_identifier *fii =
+ (struct fuse_inode_identifier *) _nodeidp;
+ struct fuse_inode *fi = get_fuse_inode(inode);
+
+ fi->nodeid = fii->nodeid;
+
return 0;
}
+static int fuse_inode_backing_set(struct inode *inode, void *_nodeidp)
+{
+ struct fuse_inode_identifier *fii =
+ (struct fuse_inode_identifier *) _nodeidp;
+ struct fuse_inode *fi = get_fuse_inode(inode);
+
+ fi->nodeid = fii->nodeid;
+#ifdef CONFIG_FUSE_BPF
+ fi->backing_inode = fii->backing_inode;
+ if (fi->backing_inode)
+ ihold(fi->backing_inode);
+#endif
+
+ return 0;
+}
+
+struct inode *fuse_iget_backing(struct super_block *sb, u64 nodeid,
+ struct inode *backing_inode)
+{
+ struct inode *inode;
+ struct fuse_inode *fi;
+ struct fuse_conn *fc = get_fuse_conn_super(sb);
+ struct fuse_inode_identifier fii = {
+ .nodeid = nodeid,
+ .backing_inode = backing_inode,
+ };
+ struct fuse_attr attr;
+ unsigned long hash = (unsigned long) backing_inode;
+
+ if (nodeid)
+ hash = nodeid;
+
+ fuse_fill_attr_from_inode(&attr, backing_inode);
+ inode = iget5_locked(sb, hash, fuse_inode_backing_eq,
+ fuse_inode_backing_set, &fii);
+ if (!inode)
+ return NULL;
+
+ if ((inode->i_state & I_NEW)) {
+ inode->i_flags |= S_NOATIME;
+ if (!fc->writeback_cache)
+ inode->i_flags |= S_NOCMTIME;
+ fuse_init_common(inode);
+ unlock_new_inode(inode);
+ }
+
+ fi = get_fuse_inode(inode);
+ fuse_init_inode(inode, &attr);
+ spin_lock(&fi->lock);
+ fi->nlookup++;
+ spin_unlock(&fi->lock);
+
+ return inode;
+}
+
struct inode *fuse_iget(struct super_block *sb, u64 nodeid,
int generation, struct fuse_attr *attr,
u64 attr_valid, u64 attr_version)
@@ -327,6 +433,9 @@
struct inode *inode;
struct fuse_inode *fi;
struct fuse_conn *fc = get_fuse_conn_super(sb);
+ struct fuse_inode_identifier fii = {
+ .nodeid = nodeid,
+ };
/*
* Auto mount points get their node id from the submount root, which is
@@ -348,7 +457,7 @@
}
retry:
- inode = iget5_locked(sb, nodeid, fuse_inode_eq, fuse_inode_set, &nodeid);
+ inode = iget5_locked(sb, nodeid, fuse_inode_eq, fuse_inode_set, &fii);
if (!inode)
return NULL;
@@ -380,13 +489,16 @@
{
struct fuse_mount *fm_iter;
struct inode *inode;
+ struct fuse_inode_identifier fii = {
+ .nodeid = nodeid,
+ };
WARN_ON(!rwsem_is_locked(&fc->killsb));
list_for_each_entry(fm_iter, &fc->mounts, fc_entry) {
if (!fm_iter->sb)
continue;
- inode = ilookup5(fm_iter->sb, nodeid, fuse_inode_eq, &nodeid);
+ inode = ilookup5(fm_iter->sb, nodeid, fuse_inode_eq, &fii);
if (inode) {
if (fm)
*fm = fm_iter;
@@ -467,20 +579,6 @@
}
}
-static void convert_fuse_statfs(struct kstatfs *stbuf, struct fuse_kstatfs *attr)
-{
- stbuf->f_type = FUSE_SUPER_MAGIC;
- stbuf->f_bsize = attr->bsize;
- stbuf->f_frsize = attr->frsize;
- stbuf->f_blocks = attr->blocks;
- stbuf->f_bfree = attr->bfree;
- stbuf->f_bavail = attr->bavail;
- stbuf->f_files = attr->files;
- stbuf->f_ffree = attr->ffree;
- stbuf->f_namelen = attr->namelen;
- /* fsid is left zero */
-}
-
static int fuse_statfs(struct dentry *dentry, struct kstatfs *buf)
{
struct super_block *sb = dentry->d_sb;
@@ -488,12 +586,24 @@
FUSE_ARGS(args);
struct fuse_statfs_out outarg;
int err;
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+#endif
if (!fuse_allow_current_process(fm->fc)) {
buf->f_type = FUSE_SUPER_MAGIC;
return 0;
}
+#ifdef CONFIG_FUSE_BPF
+ fer = fuse_bpf_backing(dentry->d_inode, struct fuse_statfs_out,
+ fuse_statfs_initialize, fuse_statfs_backing,
+ fuse_statfs_finalize,
+ dentry, buf);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
memset(&outarg, 0, sizeof(outarg));
args.in_numargs = 0;
args.opcode = FUSE_STATFS;
@@ -610,6 +720,9 @@
OPT_ALLOW_OTHER,
OPT_MAX_READ,
OPT_BLKSIZE,
+ OPT_ROOT_BPF,
+ OPT_ROOT_DIR,
+ OPT_NO_DAEMON,
OPT_ERR
};
@@ -624,6 +737,9 @@
fsparam_u32 ("max_read", OPT_MAX_READ),
fsparam_u32 ("blksize", OPT_BLKSIZE),
fsparam_string ("subtype", OPT_SUBTYPE),
+ fsparam_u32 ("root_bpf", OPT_ROOT_BPF),
+ fsparam_u32 ("root_dir", OPT_ROOT_DIR),
+ fsparam_flag ("no_daemon", OPT_NO_DAEMON),
{}
};
@@ -707,6 +823,26 @@
ctx->blksize = result.uint_32;
break;
+ case OPT_ROOT_BPF:
+ ctx->root_bpf = bpf_prog_get_type_dev(result.uint_32,
+ BPF_PROG_TYPE_FUSE, false);
+ if (IS_ERR(ctx->root_bpf)) {
+ ctx->root_bpf = NULL;
+ return invalfc(fsc, "Unable to open bpf program");
+ }
+ break;
+
+ case OPT_ROOT_DIR:
+ ctx->root_dir = fget(result.uint_32);
+ if (!ctx->root_dir)
+ return invalfc(fsc, "Unable to open root directory");
+ break;
+
+ case OPT_NO_DAEMON:
+ ctx->no_daemon = true;
+ ctx->fd_present = true;
+ break;
+
default:
return -EINVAL;
}
@@ -719,6 +855,10 @@
struct fuse_fs_context *ctx = fsc->fs_private;
if (ctx) {
+ if (ctx->root_dir)
+ fput(ctx->root_dir);
+ if (ctx->root_bpf)
+ bpf_prog_put(ctx->root_bpf);
kfree(ctx->subtype);
kfree(ctx);
}
@@ -844,15 +984,34 @@
}
EXPORT_SYMBOL_GPL(fuse_conn_get);
-static struct inode *fuse_get_root_inode(struct super_block *sb, unsigned mode)
+static struct inode *fuse_get_root_inode(struct super_block *sb,
+ unsigned int mode,
+ struct bpf_prog *root_bpf,
+ struct file *backing_fd)
{
struct fuse_attr attr;
- memset(&attr, 0, sizeof(attr));
+ struct inode *inode;
+ memset(&attr, 0, sizeof(attr));
attr.mode = mode;
attr.ino = FUSE_ROOT_ID;
attr.nlink = 1;
- return fuse_iget(sb, 1, 0, &attr, 0, 0);
+ inode = fuse_iget(sb, 1, 0, &attr, 0, 0);
+ if (!inode)
+ return NULL;
+
+#ifdef CONFIG_FUSE_BPF
+ get_fuse_inode(inode)->bpf = root_bpf;
+ if (root_bpf)
+ bpf_prog_inc(root_bpf);
+
+ if (backing_fd) {
+ get_fuse_inode(inode)->backing_inode = backing_fd->f_inode;
+ ihold(backing_fd->f_inode);
+ }
+#endif
+
+ return inode;
}
struct fuse_inode_handle {
@@ -867,11 +1026,14 @@
struct inode *inode;
struct dentry *entry;
int err = -ESTALE;
+ struct fuse_inode_identifier fii = {
+ .nodeid = handle->nodeid,
+ };
if (handle->nodeid == 0)
goto out_err;
- inode = ilookup5(sb, handle->nodeid, fuse_inode_eq, &handle->nodeid);
+ inode = ilookup5(sb, handle->nodeid, fuse_inode_eq, &fii);
if (!inode) {
struct fuse_entry_out outarg;
const struct qstr name = QSTR_INIT(".", 1);
@@ -880,7 +1042,7 @@
goto out_err;
err = fuse_lookup_name(sb, handle->nodeid, &name, &outarg,
- &inode);
+ NULL, &inode);
if (err && err != -ENOENT)
goto out_err;
if (err || !inode) {
@@ -974,13 +1136,14 @@
struct inode *inode;
struct dentry *parent;
struct fuse_entry_out outarg;
+ const struct qstr name = QSTR_INIT("..", 2);
int err;
if (!fc->export_support)
return ERR_PTR(-ESTALE);
err = fuse_lookup_name(child_inode->i_sb, get_node_id(child_inode),
- &dotdot_name, &outarg, &inode);
+ &name, &outarg, NULL, &inode);
if (err) {
if (err == -ENOENT)
return ERR_PTR(-ESTALE);
@@ -1237,7 +1400,7 @@
ia->args.nocreds = true;
ia->args.end = process_init_reply;
- if (fuse_simple_background(fm, &ia->args, GFP_KERNEL) != 0)
+ if (unlikely(fm->fc->no_daemon) || fuse_simple_background(fm, &ia->args, GFP_KERNEL) != 0)
process_init_reply(fm, &ia->args, -ENOTCONN);
}
EXPORT_SYMBOL_GPL(fuse_send_init);
@@ -1361,28 +1524,6 @@
}
EXPORT_SYMBOL_GPL(fuse_dev_free);
-static void fuse_fill_attr_from_inode(struct fuse_attr *attr,
- const struct fuse_inode *fi)
-{
- *attr = (struct fuse_attr){
- .ino = fi->inode.i_ino,
- .size = fi->inode.i_size,
- .blocks = fi->inode.i_blocks,
- .atime = fi->inode.i_atime.tv_sec,
- .mtime = fi->inode.i_mtime.tv_sec,
- .ctime = fi->inode.i_ctime.tv_sec,
- .atimensec = fi->inode.i_atime.tv_nsec,
- .mtimensec = fi->inode.i_mtime.tv_nsec,
- .ctimensec = fi->inode.i_ctime.tv_nsec,
- .mode = fi->inode.i_mode,
- .nlink = fi->inode.i_nlink,
- .uid = fi->inode.i_uid.val,
- .gid = fi->inode.i_gid.val,
- .rdev = fi->inode.i_rdev,
- .blksize = 1u << fi->inode.i_blkbits,
- };
-}
-
static void fuse_sb_defaults(struct super_block *sb)
{
sb->s_magic = FUSE_SUPER_MAGIC;
@@ -1426,7 +1567,7 @@
if (parent_sb->s_subtype && !sb->s_subtype)
return -ENOMEM;
- fuse_fill_attr_from_inode(&root_attr, parent_fi);
+ fuse_fill_attr_from_inode(&root_attr, &parent_fi->inode);
root = fuse_iget(sb, parent_fi->nodeid, 0, &root_attr, 0, 0);
/*
* This inode is just a duplicate, so it is not looked up and
@@ -1553,13 +1694,16 @@
fc->destroy = ctx->destroy;
fc->no_control = ctx->no_control;
fc->no_force_umount = ctx->no_force_umount;
+ fc->no_daemon = ctx->no_daemon;
err = -ENOMEM;
- root = fuse_get_root_inode(sb, ctx->rootmode);
+ root = fuse_get_root_inode(sb, ctx->rootmode, ctx->root_bpf,
+ ctx->root_dir);
sb->s_d_op = &fuse_root_dentry_operations;
root_dentry = d_make_root(root);
if (!root_dentry)
goto err_dev_free;
+ fuse_init_dentry_root(root_dentry, ctx->root_dir);
/* Root dentry doesn't have .d_revalidate */
sb->s_d_op = &fuse_dentry_operations;
@@ -1598,18 +1742,20 @@
struct fuse_fs_context *ctx = fsc->fs_private;
int err;
- if (!ctx->file || !ctx->rootmode_present ||
- !ctx->user_id_present || !ctx->group_id_present)
- return -EINVAL;
+ if (!ctx->no_daemon) {
+ if (!ctx->file || !ctx->rootmode_present ||
+ !ctx->user_id_present || !ctx->group_id_present)
+ return -EINVAL;
- /*
- * Require mount to happen from the same user namespace which
- * opened /dev/fuse to prevent potential attacks.
- */
- if ((ctx->file->f_op != &fuse_dev_operations) ||
- (ctx->file->f_cred->user_ns != sb->s_user_ns))
- return -EINVAL;
- ctx->fudptr = &ctx->file->private_data;
+ /*
+ * Require mount to happen from the same user namespace which
+ * opened /dev/fuse to prevent potential attacks.
+ */
+ if ((ctx->file->f_op != &fuse_dev_operations) ||
+ (ctx->file->f_cred->user_ns != sb->s_user_ns))
+ return -EINVAL;
+ ctx->fudptr = &ctx->file->private_data;
+ }
err = fuse_fill_super_common(sb, ctx);
if (err)
@@ -1890,6 +2036,57 @@
static struct kobject *fuse_kobj;
+static ssize_t fuse_bpf_show(struct kobject *kobj,
+ struct kobj_attribute *attr, char *buff)
+{
+ return sysfs_emit(buff, "supported\n");
+}
+
+static struct kobj_attribute fuse_bpf_attr =
+ __ATTR_RO(fuse_bpf);
+
+static struct attribute *bpf_features[] = {
+ &fuse_bpf_attr.attr,
+ NULL,
+};
+
+static const struct attribute_group bpf_features_group = {
+ .name = "features",
+ .attrs = bpf_features,
+};
+
+/*
+ * TODO Remove this once fuse-bpf is upstreamed
+ *
+ * bpf_prog_type_fuse exports the bpf_prog_type_fuse 'constant', which cannot be
+ * constant until the code is upstreamed
+ */
+static ssize_t bpf_prog_type_fuse_show(struct kobject *kobj,
+ struct kobj_attribute *attr, char *buff)
+{
+ return sysfs_emit(buff, "%d\n", BPF_PROG_TYPE_FUSE);
+}
+
+static struct kobj_attribute bpf_prog_type_fuse_attr =
+ __ATTR_RO(bpf_prog_type_fuse);
+
+static struct attribute *bpf_attributes[] = {
+ &bpf_prog_type_fuse_attr.attr,
+ NULL,
+};
+
+static const struct attribute_group bpf_attr_group = {
+ .attrs = bpf_attributes,
+};
+
+static const struct attribute_group *attribute_groups[] = {
+ &bpf_features_group,
+ &bpf_attr_group,
+ NULL
+};
+
+/* TODO remove to here */
+
static int fuse_sysfs_init(void)
{
int err;
@@ -1904,8 +2101,15 @@
if (err)
goto out_fuse_unregister;
+ /* TODO Remove when BPF_PROG_TYPE_FUSE is upstreamed */
+ err = sysfs_create_groups(fuse_kobj, attribute_groups);
+ if (err)
+ goto out_fuse_remove_mount_point;
+
return 0;
+ out_fuse_remove_mount_point:
+ sysfs_remove_mount_point(fuse_kobj, "connections");
out_fuse_unregister:
kobject_put(fuse_kobj);
out_err:
@@ -1914,6 +2118,7 @@
static void fuse_sysfs_cleanup(void)
{
+ sysfs_remove_groups(fuse_kobj, attribute_groups);
sysfs_remove_mount_point(fuse_kobj, "connections");
kobject_put(fuse_kobj);
}
@@ -1942,11 +2147,21 @@
if (res)
goto err_sysfs_cleanup;
+#ifdef CONFIG_FUSE_BPF
+ res = fuse_bpf_init();
+ if (res)
+ goto err_ctl_cleanup;
+#endif
+
sanitize_global_limit(&max_user_bgreq);
sanitize_global_limit(&max_user_congthresh);
return 0;
+#ifdef CONFIG_FUSE_BPF
+ err_ctl_cleanup:
+ fuse_ctl_cleanup();
+#endif
err_sysfs_cleanup:
fuse_sysfs_cleanup();
err_dev_cleanup:
@@ -1964,6 +2179,9 @@
fuse_ctl_cleanup();
fuse_sysfs_cleanup();
fuse_fs_cleanup();
+#ifdef CONFIG_FUSE_BPF
+ fuse_bpf_cleanup();
+#endif
fuse_dev_cleanup();
}
diff --git a/fs/fuse/passthrough.c b/fs/fuse/passthrough.c
index 83125de..6031e72 100644
--- a/fs/fuse/passthrough.c
+++ b/fs/fuse/passthrough.c
@@ -34,7 +34,7 @@
touch_atime(&dst_file->f_path);
}
-static void fuse_copyattr(struct file *dst_file, struct file *src_file)
+void fuse_copyattr(struct file *dst_file, struct file *src_file)
{
struct inode *dst = file_inode(dst_file);
struct inode *src = file_inode(src_file);
diff --git a/fs/fuse/readdir.c b/fs/fuse/readdir.c
index d5294e6..0516686 100644
--- a/fs/fuse/readdir.c
+++ b/fs/fuse/readdir.c
@@ -20,6 +20,8 @@
if (!fc->do_readdirplus)
return false;
+ if (fi->nodeid == 0)
+ return false;
if (!fc->readdirplus_auto)
return true;
if (test_and_clear_bit(FUSE_I_ADVISE_RDPLUS, &fi->state))
@@ -579,6 +581,26 @@
struct inode *inode = file_inode(file);
int err;
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+ bool allow_force;
+ bool force_again = false;
+ bool is_continued = false;
+
+again:
+ fer = fuse_bpf_backing(inode, struct fuse_read_io,
+ fuse_readdir_initialize, fuse_readdir_backing,
+ fuse_readdir_finalize,
+ file, ctx, &force_again, &allow_force, is_continued);
+ if (force_again && !IS_ERR(fer.result)) {
+ is_continued = true;
+ goto again;
+ }
+
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (fuse_is_bad(inode))
return -EIO;
diff --git a/fs/fuse/xattr.c b/fs/fuse/xattr.c
index 61dfaf7..6c95d0d 100644
--- a/fs/fuse/xattr.c
+++ b/fs/fuse/xattr.c
@@ -116,6 +116,17 @@
struct fuse_getxattr_out outarg;
ssize_t ret;
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_getxattr_io,
+ fuse_listxattr_initialize,
+ fuse_listxattr_backing, fuse_listxattr_finalize,
+ entry, list, size);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (fuse_is_bad(inode))
return -EIO;
@@ -184,6 +195,17 @@
struct dentry *dentry, struct inode *inode,
const char *name, void *value, size_t size)
{
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ fer = fuse_bpf_backing(inode, struct fuse_getxattr_io,
+ fuse_getxattr_initialize, fuse_getxattr_backing,
+ fuse_getxattr_finalize,
+ dentry, name, value, size);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (fuse_is_bad(inode))
return -EIO;
@@ -196,6 +218,24 @@
const char *name, const void *value, size_t size,
int flags)
{
+#ifdef CONFIG_FUSE_BPF
+ struct fuse_err_ret fer;
+
+ if (value)
+ fer = fuse_bpf_backing(inode, struct fuse_setxattr_in,
+ fuse_setxattr_initialize, fuse_setxattr_backing,
+ fuse_setxattr_finalize, dentry, name, value,
+ size, flags);
+ else
+ fer = fuse_bpf_backing(inode, struct fuse_dummy_io,
+ fuse_removexattr_initialize,
+ fuse_removexattr_backing,
+ fuse_removexattr_finalize,
+ dentry, name);
+ if (fer.ret)
+ return PTR_ERR(fer.result);
+#endif
+
if (fuse_is_bad(inode))
return -EIO;
diff --git a/fs/incfs/data_mgmt.c b/fs/incfs/data_mgmt.c
index 1382bec..5abb20a 100644
--- a/fs/incfs/data_mgmt.c
+++ b/fs/incfs/data_mgmt.c
@@ -3,7 +3,6 @@
* Copyright 2019 Google LLC
*/
#include <linux/crc32.h>
-#include <linux/delay.h>
#include <linux/file.h>
#include <linux/fsverity.h>
#include <linux/gfp.h>
@@ -1106,25 +1105,10 @@
wake_up_all(&mi->mi_blocks_written_notif_wq);
}
-static int usleep_interruptible(u32 us)
-{
- /* See:
- * https://www.kernel.org/doc/Documentation/timers/timers-howto.txt
- * for explanation
- */
- if (us < 10) {
- udelay(us);
- return 0;
- } else if (us < 20000) {
- usleep_range(us, us + us / 10);
- return 0;
- } else
- return msleep_interruptible(us / 1000);
-}
-
static int wait_for_data_block(struct data_file *df, int block_index,
struct data_file_block *res_block,
- struct incfs_read_data_file_timeouts *timeouts)
+ struct incfs_read_data_file_timeouts *timeouts,
+ unsigned int *delayed_min_us)
{
struct data_file_block block = {};
struct data_file_segment *segment = NULL;
@@ -1132,7 +1116,7 @@
struct mount_info *mi = NULL;
int error;
int wait_res = 0;
- unsigned int delayed_pending_us = 0, delayed_min_us = 0;
+ unsigned int delayed_pending_us = 0;
bool delayed_pending = false;
if (!df || !res_block)
@@ -1163,8 +1147,7 @@
if (is_data_block_present(&block)) {
*res_block = block;
if (timeouts && timeouts->min_time_us) {
- delayed_min_us = timeouts->min_time_us;
- error = usleep_interruptible(delayed_min_us);
+ *delayed_min_us = timeouts->min_time_us;
goto out;
}
return 0;
@@ -1211,13 +1194,9 @@
delayed_pending = true;
delayed_pending_us = timeouts->max_pending_time_us -
jiffies_to_usecs(wait_res);
- if (timeouts->min_pending_time_us > delayed_pending_us) {
- delayed_min_us = timeouts->min_pending_time_us -
+ if (timeouts->min_pending_time_us > delayed_pending_us)
+ *delayed_min_us = timeouts->min_pending_time_us -
delayed_pending_us;
- error = usleep_interruptible(delayed_min_us);
- if (error)
- return error;
- }
error = down_read_killable(&segment->rwsem);
if (error)
@@ -1252,9 +1231,9 @@
delayed_pending_us;
}
- if (delayed_min_us) {
+ if (delayed_min_us && *delayed_min_us) {
mi->mi_reads_delayed_min++;
- mi->mi_reads_delayed_min_us += delayed_min_us;
+ mi->mi_reads_delayed_min_us += *delayed_min_us;
}
return 0;
@@ -1284,7 +1263,8 @@
ssize_t incfs_read_data_file_block(struct mem_range dst, struct file *f,
int index, struct mem_range tmp,
- struct incfs_read_data_file_timeouts *timeouts)
+ struct incfs_read_data_file_timeouts *timeouts,
+ unsigned int *delayed_min_us)
{
loff_t pos;
ssize_t result;
@@ -1303,7 +1283,8 @@
mi = df->df_mount_info;
bfc = df->df_backing_file_context;
- result = wait_for_data_block(df, index, &block, timeouts);
+ result = wait_for_data_block(df, index, &block, timeouts,
+ delayed_min_us);
if (result < 0)
goto out;
@@ -1381,7 +1362,8 @@
}
int incfs_process_new_data_block(struct data_file *df,
- struct incfs_fill_block *block, u8 *data)
+ struct incfs_fill_block *block, u8 *data,
+ bool *complete)
{
struct mount_info *mi = NULL;
struct backing_file_context *bfc = NULL;
@@ -1420,27 +1402,42 @@
if (error)
return error;
- if (is_data_block_present(&existing_block)) {
+ if (is_data_block_present(&existing_block))
/* Block is already present, nothing to do here */
return 0;
- }
error = down_write_killable(&segment->rwsem);
if (error)
return error;
- error = mutex_lock_interruptible(&bfc->bc_mutex);
- if (!error) {
- error = incfs_write_data_block_to_backing_file(
- bfc, range(data, block->data_len), block->block_index,
- df->df_blockmap_off, flags);
- mutex_unlock(&bfc->bc_mutex);
- }
- if (!error) {
- notify_pending_reads(mi, segment, block->block_index);
- atomic_inc(&df->df_data_blocks_written);
- }
+ /* Recheck inside write lock */
+ error = get_data_file_block(df, block->block_index, &existing_block);
+ if (error)
+ goto out_up_write;
+ if (is_data_block_present(&existing_block))
+ goto out_up_write;
+
+ error = mutex_lock_interruptible(&bfc->bc_mutex);
+ if (error)
+ goto out_up_write;
+
+ error = incfs_write_data_block_to_backing_file(bfc,
+ range(data, block->data_len), block->block_index,
+ df->df_blockmap_off, flags);
+ if (error)
+ goto out_mutex_unlock;
+
+ if (atomic_inc_return(&df->df_data_blocks_written)
+ >= df->df_data_block_count)
+ *complete = true;
+
+out_mutex_unlock:
+ mutex_unlock(&bfc->bc_mutex);
+ if (!error)
+ notify_pending_reads(mi, segment, block->block_index);
+
+out_up_write:
up_write(&segment->rwsem);
if (error)
diff --git a/fs/incfs/data_mgmt.h b/fs/incfs/data_mgmt.h
index 2227913..8bd5c2f 100644
--- a/fs/incfs/data_mgmt.h
+++ b/fs/incfs/data_mgmt.h
@@ -429,7 +429,8 @@
ssize_t incfs_read_data_file_block(struct mem_range dst, struct file *f,
int index, struct mem_range tmp,
- struct incfs_read_data_file_timeouts *timeouts);
+ struct incfs_read_data_file_timeouts *timeouts,
+ unsigned int *delayed_min_us);
ssize_t incfs_read_merkle_tree_blocks(struct mem_range dst,
struct data_file *df, size_t offset);
@@ -441,7 +442,8 @@
int incfs_read_file_signature(struct data_file *df, struct mem_range dst);
int incfs_process_new_data_block(struct data_file *df,
- struct incfs_fill_block *block, u8 *data);
+ struct incfs_fill_block *block, u8 *data,
+ bool *complete);
int incfs_process_new_hash_block(struct data_file *df,
struct incfs_fill_block *block, u8 *data);
diff --git a/fs/incfs/sysfs.c b/fs/incfs/sysfs.c
index 360f03c..5c7e0fd 100644
--- a/fs/incfs/sysfs.c
+++ b/fs/incfs/sysfs.c
@@ -33,11 +33,13 @@
DECLARE_FEATURE_FLAG(corefs);
DECLARE_FEATURE_FLAG(zstd);
DECLARE_FEATURE_FLAG(v2);
+DECLARE_FEATURE_FLAG(bugfix_throttling);
static struct attribute *attributes[] = {
&corefs_attr.attr,
&zstd_attr.attr,
&v2_attr.attr,
+ &bugfix_throttling_attr.attr,
NULL,
};
diff --git a/fs/incfs/verity.c b/fs/incfs/verity.c
index b69656b..562a8e77 100644
--- a/fs/incfs/verity.c
+++ b/fs/incfs/verity.c
@@ -323,7 +323,7 @@
if (lvl == 0)
result = incfs_read_data_file_block(partial_buf,
- f, i, tmp, NULL);
+ f, i, tmp, NULL, NULL);
else {
hash_level_offset = hash_offset +
hash_tree->hash_level_suboffset[lvl - 1];
diff --git a/fs/incfs/vfs.c b/fs/incfs/vfs.c
index cde9fe9..61d6216 100644
--- a/fs/incfs/vfs.c
+++ b/fs/incfs/vfs.c
@@ -5,6 +5,7 @@
#include <linux/blkdev.h>
#include <linux/compat.h>
+#include <linux/delay.h>
#include <linux/file.h>
#include <linux/fs.h>
#include <linux/fs_stack.h>
@@ -483,7 +484,8 @@
static int read_single_page_timeouts(struct data_file *df, struct file *f,
int block_index, struct mem_range range,
- struct mem_range tmp)
+ struct mem_range tmp,
+ unsigned int *delayed_min_us)
{
struct mount_info *mi = df->df_mount_info;
struct incfs_read_data_file_timeouts timeouts = {
@@ -515,7 +517,23 @@
}
return incfs_read_data_file_block(range, f, block_index, tmp,
- &timeouts);
+ &timeouts, delayed_min_us);
+}
+
+static int usleep_interruptible(u32 us)
+{
+ /* See:
+ * https://www.kernel.org/doc/Documentation/timers/timers-howto.txt
+ * for explanation
+ */
+ if (us < 10) {
+ udelay(us);
+ return 0;
+ } else if (us < 20000) {
+ usleep_range(us, us + us / 10);
+ return 0;
+ } else
+ return msleep_interruptible(us / 1000);
}
static int read_single_page(struct file *f, struct page *page)
@@ -528,6 +546,7 @@
int result = 0;
void *page_start;
int block_index;
+ unsigned int delayed_min_us = 0;
if (!df) {
SetPageError(page);
@@ -553,7 +572,8 @@
bytes_to_read = min_t(loff_t, size - offset, PAGE_SIZE);
read_result = read_single_page_timeouts(df, f, block_index,
- range(page_start, bytes_to_read), tmp);
+ range(page_start, bytes_to_read), tmp,
+ &delayed_min_us);
free_pages((unsigned long)tmp.data, get_order(tmp.len));
} else {
@@ -575,6 +595,8 @@
flush_dcache_page(page);
kunmap(page);
unlock_page(page);
+ if (delayed_min_us)
+ usleep_interruptible(delayed_min_us);
return result;
}
@@ -668,8 +690,7 @@
dput(file);
}
-static void maybe_delete_incomplete_file(struct file *f,
- struct data_file *df)
+static void handle_file_completed(struct file *f, struct data_file *df)
{
struct backing_file_context *bfc;
struct mount_info *mi = df->df_mount_info;
@@ -678,9 +699,6 @@
const struct cred *old_cred = override_creds(mi->mi_owner);
int error;
- if (atomic_read(&df->df_data_blocks_written) < df->df_data_block_count)
- goto out;
-
/* Truncate file to remove any preallocated space */
bfc = df->df_backing_file_context;
if (bfc) {
@@ -739,6 +757,7 @@
u8 *data_buf = NULL;
ssize_t error = 0;
int i = 0;
+ bool complete = false;
if (!df)
return -EBADF;
@@ -780,7 +799,7 @@
data_buf);
} else {
error = incfs_process_new_data_block(df, &fill_block,
- data_buf);
+ data_buf, &complete);
}
if (error)
break;
@@ -789,7 +808,8 @@
if (data_buf)
free_pages((unsigned long)data_buf, get_order(data_buf_size));
- maybe_delete_incomplete_file(f, df);
+ if (complete)
+ handle_file_completed(f, df);
/*
* Only report the error if no records were processed, otherwise
diff --git a/include/linux/bpf_types.h b/include/linux/bpf_types.h
index bbe1eef..a49d350 100644
--- a/include/linux/bpf_types.h
+++ b/include/linux/bpf_types.h
@@ -79,6 +79,9 @@
#endif
BPF_PROG_TYPE(BPF_PROG_TYPE_SYSCALL, bpf_syscall,
void *, void *)
+#ifdef CONFIG_FUSE_BPF
+BPF_PROG_TYPE(BPF_PROG_TYPE_FUSE, fuse, struct fuse_bpf_args, struct fuse_bpf_args)
+#endif
BPF_MAP_TYPE(BPF_MAP_TYPE_ARRAY, array_map_ops)
BPF_MAP_TYPE(BPF_MAP_TYPE_PERCPU_ARRAY, percpu_array_map_ops)
diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h
index a9ceb72..42c34a6 100644
--- a/include/linux/elfcore.h
+++ b/include/linux/elfcore.h
@@ -118,14 +118,14 @@
* Dumping its extra ELF program headers includes all the other information
* a debugger needs to easily find how the gate DSO was being used.
*/
-extern Elf_Half elf_core_extra_phdrs(void);
+extern Elf_Half elf_core_extra_phdrs(struct coredump_params *cprm);
extern int
elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset);
extern int
elf_core_write_extra_data(struct coredump_params *cprm);
-extern size_t elf_core_extra_data_size(void);
+extern size_t elf_core_extra_data_size(struct coredump_params *cprm);
#else
-static inline Elf_Half elf_core_extra_phdrs(void)
+static inline Elf_Half elf_core_extra_phdrs(struct coredump_params *cprm)
{
return 0;
}
@@ -140,7 +140,7 @@
return 1;
}
-static inline size_t elf_core_extra_data_size(void)
+static inline size_t elf_core_extra_data_size(struct coredump_params *cprm)
{
return 0;
}
diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h
index 842d223d..10d5922 100644
--- a/include/linux/eventfd.h
+++ b/include/linux/eventfd.h
@@ -73,6 +73,12 @@
return -ENOSYS;
}
+static inline int eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n,
+ unsigned mask)
+{
+ return -ENOSYS;
+}
+
static inline void eventfd_ctx_put(struct eventfd_ctx *ctx)
{
diff --git a/include/linux/hid.h b/include/linux/hid.h
index f5ebf6c..8e38fea 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -156,6 +156,7 @@
#define HID_UP_DIGITIZER 0x000d0000
#define HID_UP_PID 0x000f0000
#define HID_UP_BATTERY 0x00850000
+#define HID_UP_CAMERA 0x00900000
#define HID_UP_HPVENDOR 0xff7f0000
#define HID_UP_HPVENDOR2 0xff010000
#define HID_UP_MSVENDOR 0xff000000
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 1fb9258..1d3fbd2 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -4476,7 +4476,7 @@
return 0;
}
- return common + mle->variable[0];
+ return sizeof(*mle) + common + mle->variable[0];
}
/**
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 12e91d2..b636cdb 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1379,6 +1379,9 @@
* @fils_discovery: FILS discovery transmission parameters
* @unsol_bcast_probe_resp: Unsolicited broadcast probe response parameters
* @mbssid_config: AP settings for multiple bssid
+ * @punct_bitmap: Preamble puncturing bitmap. Each bit represents
+ * a 20 MHz channel, lowest bit corresponding to the lowest channel.
+ * Bit set to 1 indicates that the channel is punctured.
*/
struct cfg80211_ap_settings {
struct cfg80211_chan_def chandef;
@@ -1413,6 +1416,7 @@
struct cfg80211_fils_discovery fils_discovery;
struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp;
struct cfg80211_mbssid_config mbssid_config;
+ u16 punct_bitmap;
ANDROID_BACKPORT_RESERVED(1);
ANDROID_BACKPORT_RESERVED(2);
@@ -1444,6 +1448,9 @@
* @radar_required: whether radar detection is required on the new channel
* @block_tx: whether transmissions should be blocked while changing
* @count: number of beacons until switch
+ * @punct_bitmap: Preamble puncturing bitmap. Each bit represents
+ * a 20 MHz channel, lowest bit corresponding to the lowest channel.
+ * Bit set to 1 indicates that the channel is punctured.
*/
struct cfg80211_csa_settings {
struct cfg80211_chan_def chandef;
@@ -1456,6 +1463,7 @@
bool radar_required;
bool block_tx;
u8 count;
+ u16 punct_bitmap;
ANDROID_BACKPORT_RESERVED(1);
ANDROID_BACKPORT_RESERVED(2);
@@ -1979,6 +1987,24 @@
* received packet with an FCS error matches the peer MAC address.
* @airtime_link_metric: mesh airtime link metric.
* @connected_to_as: true if mesh STA has a path to authentication server
+ * @mlo_params_valid: Indicates @assoc_link_id and @mld_addr fields are filled
+ * by driver. Drivers use this only in cfg80211_new_sta() calls when AP
+ * MLD's MLME/SME is offload to driver. Drivers won't fill this
+ * information in cfg80211_del_sta_sinfo(), get_station() and
+ * dump_station() callbacks.
+ * @assoc_link_id: Indicates MLO link ID of the AP, with which the station
+ * completed (re)association. This information filled for both MLO
+ * and non-MLO STA connections when the AP affiliated with an MLD.
+ * @mld_addr: For MLO STA connection, filled with MLD address of the station.
+ * For non-MLO STA connection, filled with all zeros.
+ * @assoc_resp_ies: IEs from (Re)Association Response.
+ * This is used only when in AP mode with drivers that do not use user
+ * space MLME/SME implementation. The information is provided only for the
+ * cfg80211_new_sta() calls to notify user space of the IEs. Drivers won't
+ * fill this information in cfg80211_del_sta_sinfo(), get_station() and
+ * dump_station() callbacks. User space needs this information to determine
+ * the accepted and rejected affiliated links of the connected station.
+ * @assoc_resp_ies_len: Length of @assoc_resp_ies buffer in octets.
*/
struct station_info {
u64 filled;
@@ -2039,6 +2065,12 @@
u8 connected_to_as;
+ bool mlo_params_valid;
+ u8 assoc_link_id;
+ u8 mld_addr[ETH_ALEN] __aligned(2);
+ const u8 *assoc_resp_ies;
+ size_t assoc_resp_ies_len;
+
ANDROID_BACKPORT_RESERVED(1);
ANDROID_BACKPORT_RESERVED(2);
ANDROID_BACKPORT_RESERVED(3);
@@ -3803,6 +3835,17 @@
* the real status code for failures. Used only for the authentication
* response command interface (user space to driver).
* @pmkid: The identifier to refer a PMKSA.
+ * @mld_addr: MLD address of the peer. Used by the authentication request event
+ * interface. Driver indicates this to enable MLO during the authentication
+ * offload to user space. Driver shall look at %NL80211_ATTR_MLO_SUPPORT
+ * flag capability in NL80211_CMD_CONNECT to know whether the user space
+ * supports enabling MLO during the authentication offload.
+ * User space should use the address of the interface (on which the
+ * authentication request event reported) as self MLD address. User space
+ * and driver should use MLD addresses in RA, TA and BSSID fields of
+ * authentication frames sent or received via cfg80211. The driver
+ * translates the MLD addresses to/from link addresses based on the link
+ * chosen for the authentication.
*/
struct cfg80211_external_auth_params {
enum nl80211_external_auth_action action;
@@ -3811,6 +3854,7 @@
unsigned int key_mgmt_suite;
u16 status;
const u8 *pmkid;
+ u8 mld_addr[ETH_ALEN] __aligned(2);
ANDROID_BACKPORT_RESERVED(1);
ANDROID_BACKPORT_RESERVED(2);
@@ -4075,12 +4119,22 @@
* the IEs of the remote peer in the event from the host driver and
* the constructed IEs by the user space in the request interface.
* @ie_len: Length of IEs in octets.
+ * @assoc_link_id: MLO link ID of the AP, with which (re)association requested
+ * by peer. This will be filled by driver for both MLO and non-MLO station
+ * connections when the AP affiliated with an MLD. For non-MLD AP mode, it
+ * will be -1. Used only with OWE update event (driver to user space).
+ * @peer_mld_addr: For MLO connection, MLD address of the peer. For non-MLO
+ * connection, it will be all zeros. This is applicable only when
+ * @assoc_link_id is not -1, i.e., the AP affiliated with an MLD. Used only
+ * with OWE update event (driver to user space).
*/
struct cfg80211_update_owe_info {
u8 peer[ETH_ALEN] __aligned(2);
u16 status;
const u8 *ie;
size_t ie_len;
+ int assoc_link_id;
+ u8 peer_mld_addr[ETH_ALEN] __aligned(2);
ANDROID_BACKPORT_RESERVED(1);
ANDROID_BACKPORT_RESERVED(2);
@@ -4922,6 +4976,7 @@
* in order to not have them reachable in normal drivers, until we have
* complete feature/interface combinations/etc. advertisement. No driver
* should set this flag for now.
+ * @WIPHY_FLAG_SUPPORTS_EXT_KCK_32: The device supports 32-byte KCK keys.
*/
enum wiphy_flags {
WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK = BIT(0),
@@ -4934,7 +4989,7 @@
WIPHY_FLAG_CONTROL_PORT_PROTOCOL = BIT(7),
WIPHY_FLAG_IBSS_RSN = BIT(8),
WIPHY_FLAG_MESH_AUTH = BIT(10),
- /* use hole at 11 */
+ WIPHY_FLAG_SUPPORTS_EXT_KCK_32 = BIT(11),
/* use hole at 12 */
WIPHY_FLAG_SUPPORTS_FW_ROAM = BIT(13),
WIPHY_FLAG_AP_UAPSD = BIT(14),
@@ -8012,6 +8067,8 @@
*
* @dev: network device
* @bssid: the BSSID of the AP
+ * @td_bitmap: transition disable policy
+ * @td_bitmap_len: Length of transition disable policy
* @gfp: allocation flags
*
* This function should be called by a driver that supports 4 way handshake
@@ -8022,7 +8079,7 @@
* indicate the 802.11 association.
*/
void cfg80211_port_authorized(struct net_device *dev, const u8 *bssid,
- gfp_t gfp);
+ const u8* td_bitmap, u8 td_bitmap_len, gfp_t gfp);
/**
* cfg80211_disconnected - notify cfg80211 that connection was dropped
@@ -8607,13 +8664,14 @@
* @dev: the device which switched channels
* @chandef: the new channel definition
* @link_id: the link ID for MLO, must be 0 for non-MLO
+ * @punct_bitmap: the new puncturing bitmap
*
* Caller must acquire wdev_lock, therefore must only be called from sleepable
* driver context!
*/
void cfg80211_ch_switch_notify(struct net_device *dev,
struct cfg80211_chan_def *chandef,
- unsigned int link_id);
+ unsigned int link_id, u16 punct_bitmap);
/*
* cfg80211_ch_switch_started_notify - notify channel switch start
@@ -8622,6 +8680,7 @@
* @link_id: the link ID for MLO, must be 0 for non-MLO
* @count: the number of TBTTs until the channel switch happens
* @quiet: whether or not immediate quiet was requested by the AP
+ * @punct_bitmap: the future puncturing bitmap
*
* Inform the userspace about the channel switch that has just
* started, so that it can take appropriate actions (eg. starting
@@ -8630,7 +8689,7 @@
void cfg80211_ch_switch_started_notify(struct net_device *dev,
struct cfg80211_chan_def *chandef,
unsigned int link_id, u8 count,
- bool quiet);
+ bool quiet, u16 punct_bitmap);
/**
* ieee80211_operating_class_to_band - convert operating class to band
@@ -9244,4 +9303,16 @@
0, 0);
}
+/**
+ * cfg80211_valid_disable_subchannel_bitmap - validate puncturing bitmap
+ * @bitmap: bitmap to be validated
+ * @chandef: channel definition
+ *
+ * Validate the puncturing bitmap.
+ *
+ * Return: %true if the bitmap is valid. %false otherwise.
+ */
+bool cfg80211_valid_disable_subchannel_bitmap(u16 *bitmap,
+ const struct cfg80211_chan_def *chandef);
+
#endif /* __NET_CFG80211_H */
diff --git a/include/trace/hooks/binder.h b/include/trace/hooks/binder.h
index 99ee00c..b442c86 100644
--- a/include/trace/hooks/binder.h
+++ b/include/trace/hooks/binder.h
@@ -43,10 +43,6 @@
DECLARE_HOOK(android_vh_sync_txn_recvd,
TP_PROTO(struct task_struct *tsk, struct task_struct *from),
TP_ARGS(tsk, from));
-DECLARE_RESTRICTED_HOOK(android_rvh_binder_transaction,
- TP_PROTO(struct binder_proc *target_proc, struct binder_proc *proc,
- struct binder_thread *thread, struct binder_transaction_data *tr),
- TP_ARGS(target_proc, proc, thread, tr), 1);
DECLARE_HOOK(android_vh_binder_proc_transaction_entry,
TP_PROTO(struct binder_proc *proc, struct binder_transaction *t,
struct binder_thread **thread, int node_debug_id, bool pending_async,
diff --git a/include/trace/hooks/dtask.h b/include/trace/hooks/dtask.h
index 2b733d4..d72bcb6 100644
--- a/include/trace/hooks/dtask.h
+++ b/include/trace/hooks/dtask.h
@@ -32,6 +32,15 @@
DECLARE_HOOK(android_vh_mutex_init,
TP_PROTO(struct mutex *lock),
TP_ARGS(lock));
+DECLARE_HOOK(android_vh_mutex_opt_spin_start,
+ TP_PROTO(struct mutex *lock, bool *time_out, int *cnt),
+ TP_ARGS(lock, time_out, cnt));
+DECLARE_HOOK(android_vh_mutex_opt_spin_finish,
+ TP_PROTO(struct mutex *lock, bool taken),
+ TP_ARGS(lock, taken));
+DECLARE_HOOK(android_vh_mutex_can_spin_on_owner,
+ TP_PROTO(struct mutex *lock, int *retval),
+ TP_ARGS(lock, retval));
DECLARE_HOOK(android_vh_rtmutex_wait_start,
TP_PROTO(struct rt_mutex_base *lock),
@@ -52,6 +61,15 @@
DECLARE_HOOK(android_vh_rwsem_write_wait_finish,
TP_PROTO(struct rw_semaphore *sem),
TP_ARGS(sem));
+DECLARE_HOOK(android_vh_rwsem_opt_spin_start,
+ TP_PROTO(struct rw_semaphore *sem, bool *time_out, int *cnt, bool chk_only),
+ TP_ARGS(sem, time_out, cnt, chk_only));
+DECLARE_HOOK(android_vh_rwsem_opt_spin_finish,
+ TP_PROTO(struct rw_semaphore *sem, bool taken),
+ TP_ARGS(sem, taken));
+DECLARE_HOOK(android_vh_rwsem_can_spin_on_owner,
+ TP_PROTO(struct rw_semaphore *sem, bool *ret),
+ TP_ARGS(sem, ret));
DECLARE_HOOK(android_vh_sched_show_task,
TP_PROTO(struct task_struct *task),
diff --git a/include/trace/hooks/psi.h b/include/trace/hooks/psi.h
new file mode 100644
index 0000000..91a0086
--- /dev/null
+++ b/include/trace/hooks/psi.h
@@ -0,0 +1,25 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM psi
+
+#define TRACE_INCLUDE_PATH trace/hooks
+
+#if !defined(_TRACE_HOOK_PSI_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_HOOK_PSI_H
+
+#include <trace/hooks/vendor_hooks.h>
+
+struct psi_trigger;
+struct psi_group;
+DECLARE_HOOK(android_vh_psi_event,
+ TP_PROTO(struct psi_trigger *t),
+ TP_ARGS(t));
+
+DECLARE_HOOK(android_vh_psi_group,
+ TP_PROTO(struct psi_group *group),
+ TP_ARGS(group));
+
+#endif /* _TRACE_HOOK_PSI_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/hooks/thermal.h b/include/trace/hooks/thermal.h
index 3706d2b..0cfd0e8 100644
--- a/include/trace/hooks/thermal.h
+++ b/include/trace/hooks/thermal.h
@@ -38,6 +38,10 @@
TP_PROTO(bool *enable, bool *override),
TP_ARGS(enable, override));
+DECLARE_HOOK(android_vh_modify_thermal_throttle_update,
+ TP_PROTO(struct thermal_zone_device *tz, bool *update),
+ TP_ARGS(tz, update));
+
DECLARE_HOOK(android_vh_thermal_power_cap,
TP_PROTO(u32 *power_range),
TP_ARGS(power_range));
diff --git a/include/uapi/linux/android_fuse.h b/include/uapi/linux/android_fuse.h
new file mode 100644
index 0000000..221e30e
--- /dev/null
+++ b/include/uapi/linux/android_fuse.h
@@ -0,0 +1,97 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause WITH Linux-syscall-note */
+/* Copyright (c) 2022 Google LLC */
+
+#ifndef _LINUX_ANDROID_FUSE_H
+#define _LINUX_ANDROID_FUSE_H
+
+#ifdef __KERNEL__
+#include <linux/types.h>
+#else
+#include <stdint.h>
+#endif
+
+#define FUSE_ACTION_KEEP 0
+#define FUSE_ACTION_REMOVE 1
+#define FUSE_ACTION_REPLACE 2
+
+struct fuse_entry_bpf_out {
+ uint64_t backing_action;
+ uint64_t backing_fd;
+ uint64_t bpf_action;
+ uint64_t bpf_fd;
+};
+
+struct fuse_entry_bpf {
+ struct fuse_entry_bpf_out out;
+ struct file *backing_file;
+ struct file *bpf_file;
+};
+
+struct fuse_read_out {
+ uint64_t offset;
+ uint32_t again;
+ uint32_t padding;
+};
+
+struct fuse_in_postfilter_header {
+ uint32_t len;
+ uint32_t opcode;
+ uint64_t unique;
+ uint64_t nodeid;
+ uint32_t uid;
+ uint32_t gid;
+ uint32_t pid;
+ uint32_t error_in;
+};
+
+/*
+ * Fuse BPF Args
+ *
+ * Used to communicate with bpf programs to allow checking or altering certain values.
+ * The end_offset allows the bpf verifier to check boundaries statically. This reflects
+ * the ends of the buffer. size shows the length that was actually used.
+ *
+ */
+
+/** One input argument of a request */
+struct fuse_bpf_in_arg {
+ uint32_t size;
+ const void *value;
+ const void *end_offset;
+};
+
+/** One output argument of a request */
+struct fuse_bpf_arg {
+ uint32_t size;
+ void *value;
+ void *end_offset;
+};
+
+#define FUSE_MAX_IN_ARGS 5
+#define FUSE_MAX_OUT_ARGS 3
+
+#define FUSE_BPF_FORCE (1 << 0)
+#define FUSE_BPF_OUT_ARGVAR (1 << 6)
+
+struct fuse_bpf_args {
+ uint64_t nodeid;
+ uint32_t opcode;
+ uint32_t error_in;
+ uint32_t in_numargs;
+ uint32_t out_numargs;
+ uint32_t flags;
+ struct fuse_bpf_in_arg in_args[FUSE_MAX_IN_ARGS];
+ struct fuse_bpf_arg out_args[FUSE_MAX_OUT_ARGS];
+};
+
+#define FUSE_BPF_USER_FILTER 1
+#define FUSE_BPF_BACKING 2
+#define FUSE_BPF_POST_FILTER 4
+
+#define FUSE_OPCODE_FILTER 0x0ffff
+#define FUSE_PREFILTER 0x10000
+#define FUSE_POSTFILTER 0x20000
+
+struct bpf_prog *fuse_get_bpf_prog(struct file *file);
+
+#endif /* _LINUX_ANDROID_FUSE_H */
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index a887e58..d331249 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -949,6 +949,18 @@
BPF_PROG_TYPE_LSM,
BPF_PROG_TYPE_SK_LOOKUP,
BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */
+
+#ifndef __GENKSYMS__
+ /*
+ * Until fuse-bpf is upstreamed, this value must be at the end to allow for
+ * other recently-added upstreamed values to be correct.
+ * This works because no one should use this value directly, rather they must
+ * read the value from /sys/fs/fuse/bpf_prog_type_fuse
+ * Please maintain this value at the end of the list until fuse-bpf is
+ * upstreamed.
+ */
+ BPF_PROG_TYPE_FUSE,
+#endif
};
enum bpf_attach_type {
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index fb18590..73fd223 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -1166,6 +1166,23 @@
* %NL80211_ATTR_STATUS_CODE attribute in %NL80211_CMD_EXTERNAL_AUTH
* command interface.
*
+ * Host driver sends MLD address of the AP with %NL80211_ATTR_MLD_ADDR in
+ * %NL80211_CMD_EXTERNAL_AUTH event to indicate user space to enable MLO
+ * during the authentication offload in STA mode while connecting to MLD
+ * APs. Host driver should check %NL80211_ATTR_MLO_SUPPORT flag capability
+ * in %NL80211_CMD_CONNECT to know whether the user space supports enabling
+ * MLO during the authentication offload or not.
+ * User space should enable MLO during the authentication only when it
+ * receives the AP MLD address in authentication offload request. User
+ * space shouldn't enable MLO when the authentication offload request
+ * doesn't indicate the AP MLD address even if the AP is MLO capable.
+ * User space should use %NL80211_ATTR_MLD_ADDR as peer's MLD address and
+ * interface address identified by %NL80211_ATTR_IFINDEX as self MLD
+ * address. User space and host driver to use MLD addresses in RA, TA and
+ * BSSID fields of the frames between them, and host driver translates the
+ * MLD addresses to/from link addresses based on the link chosen for the
+ * authentication.
+ *
* Host driver reports this status on an authentication failure to the
* user space through the connect result as the user space would have
* initiated the connection through the connect request.
@@ -2755,6 +2772,14 @@
* When used with %NL80211_CMD_FRAME_TX_STATUS, indicates the ack RX
* timestamp. When used with %NL80211_CMD_FRAME RX notification, indicates
* the incoming frame RX timestamp.
+ * @NL80211_ATTR_TD_BITMAP: Transition Disable bitmap, for subsequent
+ * (re)associations.
+ *
+ * @NL80211_ATTR_PUNCT_BITMAP: (u32) Preamble puncturing bitmap, lowest
+ * bit corresponds to the lowest 20 MHz channel. Each bit set to 1
+ * indicates that the sub-channel is punctured. Higher 16 bits are
+ * reserved.
+ *
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
* @NL80211_ATTR_MAX: highest attribute number currently defined
* @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3282,9 +3307,9 @@
NL80211_ATTR_TX_HW_TIMESTAMP,
NL80211_ATTR_RX_HW_TIMESTAMP,
+ NL80211_ATTR_TD_BITMAP,
+ NL80211_ATTR_PUNCT_BITMAP,
- NL80211_ATTR_RESERVED_DO_NOT_USE_10 = 321,
- NL80211_ATTR_RESERVED_DO_NOT_USE_11 = 322,
NL80211_ATTR_RESERVED_DO_NOT_USE_12 = 323,
NL80211_ATTR_RESERVED_DO_NOT_USE_13 = 324,
NL80211_ATTR_RESERVED_DO_NOT_USE_14 = 325,
@@ -5924,6 +5949,7 @@
#define NL80211_KEK_LEN 16
#define NL80211_KCK_EXT_LEN 24
#define NL80211_KEK_EXT_LEN 32
+#define NL80211_KCK_EXT_LEN_32 32
#define NL80211_REPLAY_CTR_LEN 8
/**
@@ -6349,6 +6375,11 @@
* might apply, e.g. no scans in progress, no offchannel operations
* in progress, and no active connections.
*
+ * @NL80211_EXT_FEATURE_PUNCT: Driver supports preamble puncturing in AP mode.
+ *
+ * @NL80211_EXT_FEATURE_SECURE_NAN: Device supports NAN Pairing which enables
+ * authentication, data encryption and message integrity.
+ *
* @NUM_NL80211_EXT_FEATURES: number of extended features.
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
*/
@@ -6417,8 +6448,8 @@
NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
NL80211_EXT_FEATURE_RADAR_BACKGROUND,
NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE,
- NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_2 = 63,
- NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_3 = 64,
+ NL80211_EXT_FEATURE_PUNCT,
+ NL80211_EXT_FEATURE_SECURE_NAN,
NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_4 = 65,
NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_5 = 66,
NL80211_EXT_FEATURE_RESERVED_DO_NOT_USE_6 = 67,
diff --git a/include/uapi/linux/usb/video.h b/include/uapi/linux/usb/video.h
index bfdae12..6e8e572 100644
--- a/include/uapi/linux/usb/video.h
+++ b/include/uapi/linux/usb/video.h
@@ -466,7 +466,7 @@
__u8 bDefaultFrameIndex;
__u8 bAspectRatioX;
__u8 bAspectRatioY;
- __u8 bmInterfaceFlags;
+ __u8 bmInterlaceFlags;
__u8 bCopyProtect;
} __attribute__((__packed__));
@@ -522,7 +522,7 @@
__u8 bDefaultFrameIndex;
__u8 bAspectRatioX;
__u8 bAspectRatioY;
- __u8 bmInterfaceFlags;
+ __u8 bmInterlaceFlags;
__u8 bCopyProtect;
} __attribute__((__packed__));
diff --git a/kernel/bpf/Makefile b/kernel/bpf/Makefile
index 7f33098..0115967 100644
--- a/kernel/bpf/Makefile
+++ b/kernel/bpf/Makefile
@@ -36,3 +36,6 @@
obj-${CONFIG_BPF_LSM} += bpf_lsm.o
endif
obj-$(CONFIG_BPF_PRELOAD) += preload/
+ifeq ($(CONFIG_FUSE_BPF),y)
+obj-$(CONFIG_BPF_SYSCALL) += bpf_fuse.o
+endif
diff --git a/kernel/bpf/bpf_fuse.c b/kernel/bpf/bpf_fuse.c
new file mode 100644
index 0000000..c6aa670b
--- /dev/null
+++ b/kernel/bpf/bpf_fuse.c
@@ -0,0 +1,128 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2021 Google LLC
+
+#include <linux/filter.h>
+#include <linux/android_fuse.h>
+
+static const struct bpf_func_proto *
+fuse_prog_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
+{
+ switch (func_id) {
+ case BPF_FUNC_trace_printk:
+ return bpf_get_trace_printk_proto();
+
+ case BPF_FUNC_get_current_uid_gid:
+ return &bpf_get_current_uid_gid_proto;
+
+ case BPF_FUNC_get_current_pid_tgid:
+ return &bpf_get_current_pid_tgid_proto;
+
+ case BPF_FUNC_map_lookup_elem:
+ return &bpf_map_lookup_elem_proto;
+
+ case BPF_FUNC_map_update_elem:
+ return &bpf_map_update_elem_proto;
+
+ default:
+ pr_debug("Invalid fuse bpf func %d\n", func_id);
+ return NULL;
+ }
+}
+
+static bool fuse_prog_is_valid_access(int off, int size,
+ enum bpf_access_type type,
+ const struct bpf_prog *prog,
+ struct bpf_insn_access_aux *info)
+{
+ int i;
+
+ if (off < 0 || off > offsetofend(struct fuse_bpf_args, out_args))
+ return false;
+
+ /* TODO This is garbage. Do it properly */
+ for (i = 0; i < 5; i++) {
+ if (off == offsetof(struct fuse_bpf_args, in_args[i].value)) {
+ info->reg_type = PTR_TO_BUF;
+ info->ctx_field_size = 256;
+ if (type != BPF_READ)
+ return false;
+ return true;
+ }
+ }
+ for (i = 0; i < 3; i++) {
+ if (off == offsetof(struct fuse_bpf_args, out_args[i].value)) {
+ info->reg_type = PTR_TO_BUF;
+ info->ctx_field_size = 256;
+ return true;
+ }
+ }
+ if (type != BPF_READ)
+ return false;
+
+ return true;
+}
+
+const struct bpf_verifier_ops fuse_verifier_ops = {
+ .get_func_proto = fuse_prog_func_proto,
+ .is_valid_access = fuse_prog_is_valid_access,
+};
+
+const struct bpf_prog_ops fuse_prog_ops = {
+};
+
+struct bpf_prog *fuse_get_bpf_prog(struct file *file)
+{
+ struct bpf_prog *bpf_prog = ERR_PTR(-EINVAL);
+
+ if (!file || IS_ERR(file))
+ return bpf_prog;
+ /**
+ * Two ways of getting a bpf prog from another task's fd, since
+ * bpf_prog_get_type_dev only works with an fd
+ *
+ * 1) Duplicate a little of the needed code. Requires access to
+ * bpf_prog_fops for validation, which is not exported for modules
+ * 2) Insert the bpf_file object into a fd from the current task
+ * Stupidly complex, but I think OK, as security checks are not run
+ * during the existence of the handle
+ *
+ * Best would be to upstream 1) into kernel/bpf/syscall.c and export it
+ * for use here. Failing that, we have to use 2, since fuse must be
+ * compilable as a module.
+ */
+#if 1
+ if (file->f_op != &bpf_prog_fops)
+ goto out;
+
+ bpf_prog = file->private_data;
+ if (bpf_prog->type == BPF_PROG_TYPE_FUSE)
+ bpf_prog_inc(bpf_prog);
+ else
+ bpf_prog = ERR_PTR(-EINVAL);
+
+#else
+ {
+ int task_fd = get_unused_fd_flags(file->f_flags);
+
+ if (task_fd < 0)
+ goto out;
+
+ fd_install(task_fd, file);
+
+ bpf_prog = bpf_prog_get_type_dev(task_fd, BPF_PROG_TYPE_FUSE,
+ false);
+
+ /* Close the fd, which also closes the file */
+ __close_fd(current->files, task_fd);
+ file = NULL;
+ }
+#endif
+
+out:
+ if (file)
+ fput(file);
+ return bpf_prog;
+}
+EXPORT_SYMBOL(fuse_get_bpf_prog);
+
+
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
index 7f031f7..9e8a28e4 100644
--- a/kernel/bpf/btf.c
+++ b/kernel/bpf/btf.c
@@ -3,6 +3,7 @@
#include <uapi/linux/btf.h>
#include <uapi/linux/bpf.h>
+#include <uapi/linux/android_fuse.h>
#include <uapi/linux/bpf_perf_event.h>
#include <uapi/linux/types.h>
#include <linux/seq_file.h>
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 34fe975..8dbb54c1 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -3395,15 +3395,38 @@
* Description: Returns the cpumask_var_t cpus_allowed of the cpuset
* attached to the specified @tsk. Guaranteed to return some non-empty
* subset of cpu_online_mask, even if this means going outside the
- * tasks cpuset.
+ * tasks cpuset, except when the task is in the top cpuset.
**/
void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask)
{
unsigned long flags;
+ struct cpuset *cs;
spin_lock_irqsave(&callback_lock, flags);
- guarantee_online_cpus(tsk, pmask);
+ rcu_read_lock();
+
+ cs = task_cs(tsk);
+ if (cs != &top_cpuset)
+ guarantee_online_cpus(tsk, pmask);
+ /*
+ * Tasks in the top cpuset won't get update to their cpumasks
+ * when a hotplug online/offline event happens. So we include all
+ * offline cpus in the allowed cpu list.
+ */
+ if ((cs == &top_cpuset) || cpumask_empty(pmask)) {
+ const struct cpumask *possible_mask = task_cpu_possible_mask(tsk);
+
+ /*
+ * We first exclude cpus allocated to partitions. If there is no
+ * allowable online cpu left, we fall back to all possible cpus.
+ */
+ cpumask_andnot(pmask, possible_mask, top_cpuset.subparts_cpus);
+ if (!cpumask_intersects(pmask, cpu_online_mask))
+ cpumask_copy(pmask, possible_mask);
+ }
+
+ rcu_read_unlock();
spin_unlock_irqrestore(&callback_lock, flags);
}
EXPORT_SYMBOL_GPL(cpuset_cpus_allowed);
diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
index 4c2fb29..caf2e4e 100644
--- a/kernel/locking/mutex.c
+++ b/kernel/locking/mutex.c
@@ -355,9 +355,16 @@
struct ww_acquire_ctx *ww_ctx, struct mutex_waiter *waiter)
{
bool ret = true;
+ int cnt = 0;
+ bool time_out = false;
rcu_read_lock();
while (__mutex_owner(lock) == owner) {
+ trace_android_vh_mutex_opt_spin_start(lock, &time_out, &cnt);
+ if (time_out) {
+ ret = false;
+ break;
+ }
/*
* Ensure we emit the owner->on_cpu, dereference _after_
* checking lock->owner still matches owner. If that fails,
@@ -408,6 +415,7 @@
if (owner)
retval = owner->on_cpu && !vcpu_is_preempted(task_cpu(owner));
rcu_read_unlock();
+ trace_android_vh_mutex_can_spin_on_owner(lock, &retval);
/*
* If lock->owner is not set, the mutex has been released. Return true
@@ -489,6 +497,7 @@
if (!waiter)
osq_unlock(&lock->osq);
+ trace_android_vh_mutex_opt_spin_finish(lock, true);
return true;
@@ -497,6 +506,7 @@
osq_unlock(&lock->osq);
fail:
+ trace_android_vh_mutex_opt_spin_finish(lock, false);
/*
* If we fell out of the spin path because of need_resched(),
* reschedule now, before we try-lock the mutex. This avoids getting
diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c
index 80e74cd..d52f8f9 100644
--- a/kernel/locking/rwsem.c
+++ b/kernel/locking/rwsem.c
@@ -249,6 +249,7 @@
if (!(*cntp & RWSEM_READ_FAILED_MASK)) {
rwsem_set_reader_owned(sem);
+ trace_android_vh_record_rwsem_lock_starttime(current, jiffies);
return true;
}
@@ -706,6 +707,7 @@
ret = false;
rcu_read_unlock();
preempt_enable();
+ trace_android_vh_rwsem_can_spin_on_owner(sem, &ret);
lockevent_cond_inc(rwsem_opt_fail, !ret);
return ret;
@@ -731,6 +733,8 @@
struct task_struct *new, *owner;
unsigned long flags, new_flags;
enum owner_state state;
+ int cnt = 0;
+ bool time_out = false;
owner = rwsem_owner_flags(sem, &flags);
state = rwsem_owner_state(owner, flags);
@@ -739,6 +743,9 @@
rcu_read_lock();
for (;;) {
+ trace_android_vh_rwsem_opt_spin_start(sem, &time_out, &cnt, true);
+ if (time_out)
+ break;
/*
* When a waiting writer set the handoff flag, it may spin
* on the owner as well. Once that writer acquires the lock,
@@ -802,6 +809,8 @@
int prev_owner_state = OWNER_NULL;
int loop = 0;
u64 rspin_threshold = 0;
+ int cnt = 0;
+ bool time_out = false;
preempt_disable();
@@ -818,6 +827,9 @@
for (;;) {
enum owner_state owner_state;
+ trace_android_vh_rwsem_opt_spin_start(sem, &time_out, &cnt, false);
+ if (time_out)
+ break;
owner_state = rwsem_spin_on_owner(sem);
if (!(owner_state & OWNER_SPINNABLE))
break;
@@ -911,6 +923,7 @@
cpu_relax();
}
osq_unlock(&sem->osq);
+ trace_android_vh_rwsem_opt_spin_finish(sem, taken);
done:
preempt_enable();
lockevent_cond_inc(rwsem_opt_fail, !taken);
@@ -1326,7 +1339,6 @@
return -EINTR;
}
- trace_android_vh_record_rwsem_lock_starttime(current, jiffies);
return 0;
}
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 5df3cc3..481090c 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -58,9 +58,6 @@
DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
EXPORT_SYMBOL_GPL(runqueues);
-/* Scratch cpumask to be temporarily used under rq_lock */
-DEFINE_PER_CPU(cpumask_var_t, scratch_mask);
-
#ifdef CONFIG_SCHED_DEBUG
/*
* Debugging: various feature bits
@@ -2155,18 +2152,14 @@
#ifdef CONFIG_SMP
static void
-__do_set_cpus_allowed(struct task_struct *p, struct affinity_context *ctx);
+__do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask, u32 flags);
static int __set_cpus_allowed_ptr(struct task_struct *p,
- struct affinity_context *ctx);
+ const struct cpumask *new_mask,
+ u32 flags);
static void migrate_disable_switch(struct rq *rq, struct task_struct *p)
{
- struct affinity_context ac = {
- .new_mask = cpumask_of(rq->cpu),
- .flags = SCA_MIGRATE_DISABLE,
- };
-
if (likely(!p->migration_disabled))
return;
@@ -2176,7 +2169,7 @@
/*
* Violates locking rules! see comment in __do_set_cpus_allowed().
*/
- __do_set_cpus_allowed(p, &ac);
+ __do_set_cpus_allowed(p, cpumask_of(rq->cpu), SCA_MIGRATE_DISABLE);
}
void migrate_disable(void)
@@ -2198,10 +2191,6 @@
void migrate_enable(void)
{
struct task_struct *p = current;
- struct affinity_context ac = {
- .new_mask = &p->cpus_mask,
- .flags = SCA_MIGRATE_ENABLE,
- };
if (p->migration_disabled > 1) {
p->migration_disabled--;
@@ -2214,7 +2203,7 @@
*/
preempt_disable();
if (p->cpus_ptr != &p->cpus_mask)
- __set_cpus_allowed_ptr(p, &ac);
+ __set_cpus_allowed_ptr(p, &p->cpus_mask, SCA_MIGRATE_ENABLE);
/*
* Mustn't clear migration_disabled() until cpus_ptr points back at the
* regular cpus_mask, otherwise things that race (eg.
@@ -2515,27 +2504,20 @@
* sched_class::set_cpus_allowed must do the below, but is not required to
* actually call this function.
*/
-void set_cpus_allowed_common(struct task_struct *p, struct affinity_context *ctx)
+void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_mask, u32 flags)
{
- if (ctx->flags & (SCA_MIGRATE_ENABLE | SCA_MIGRATE_DISABLE)) {
- p->cpus_ptr = ctx->new_mask;
+ if (flags & (SCA_MIGRATE_ENABLE | SCA_MIGRATE_DISABLE)) {
+ p->cpus_ptr = new_mask;
return;
}
- cpumask_copy(&p->cpus_mask, ctx->new_mask);
- p->nr_cpus_allowed = cpumask_weight(ctx->new_mask);
-
- /*
- * Swap in a new user_cpus_ptr if SCA_USER flag set
- */
- if (ctx->flags & SCA_USER)
- swap(p->user_cpus_ptr, ctx->user_mask);
-
- trace_android_rvh_set_cpus_allowed_comm(p, ctx->new_mask);
+ cpumask_copy(&p->cpus_mask, new_mask);
+ p->nr_cpus_allowed = cpumask_weight(new_mask);
+ trace_android_rvh_set_cpus_allowed_comm(p, new_mask);
}
static void
-__do_set_cpus_allowed(struct task_struct *p, struct affinity_context *ctx)
+__do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask, u32 flags)
{
struct rq *rq = task_rq(p);
bool queued, running;
@@ -2552,7 +2534,7 @@
*
* XXX do further audits, this smells like something putrid.
*/
- if (ctx->flags & SCA_MIGRATE_DISABLE)
+ if (flags & SCA_MIGRATE_DISABLE)
SCHED_WARN_ON(!p->on_cpu);
else
lockdep_assert_held(&p->pi_lock);
@@ -2571,18 +2553,7 @@
if (running)
put_prev_task(rq, p);
- /*
- * XXX: ANDROID: we can't use sched_class::set_cpus_allowed() here
- * because it doesn't take a struct affinity_context as parameter for
- * GKI KMI stability reason -- see b/254812379. To avoid the problem,
- * let's hardcode the indirection here and hope for the best. The only
- * other potential users of p->set_cpus_allowed() will be in vendor
- * modules.
- */
- if (likely(p->sched_class != &dl_sched_class))
- set_cpus_allowed_common(p, ctx);
- else
- set_cpus_allowed_dl(p, ctx);
+ p->sched_class->set_cpus_allowed(p, new_mask, flags);
if (queued)
enqueue_task(rq, p, ENQUEUE_RESTORE | ENQUEUE_NOCLOCK);
@@ -2590,20 +2561,9 @@
set_next_task(rq, p);
}
-/*
- * Used for kthread_bind() and select_fallback_rq(), in both cases the user
- * affinity (if any) should be destroyed too.
- */
void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
{
- struct affinity_context ac = {
- .new_mask = new_mask,
- .user_mask = NULL,
- .flags = SCA_USER, /* clear the user requested mask */
- };
-
- __do_set_cpus_allowed(p, &ac);
- kfree(ac.user_mask);
+ __do_set_cpus_allowed(p, new_mask, 0);
}
int dup_user_cpus_ptr(struct task_struct *dst, struct task_struct *src,
@@ -2741,8 +2701,6 @@
*/
static int affine_move_task(struct rq *rq, struct task_struct *p, struct rq_flags *rf,
int dest_cpu, unsigned int flags)
- __releases(rq->lock)
- __releases(p->pi_lock)
{
struct set_affinity_pending my_pending = { }, *pending = NULL;
bool stop_pending, complete = false;
@@ -2885,7 +2843,8 @@
* Called with both p->pi_lock and rq->lock held; drops both before returning.
*/
static int __set_cpus_allowed_ptr_locked(struct task_struct *p,
- struct affinity_context *ctx,
+ const struct cpumask *new_mask,
+ u32 flags,
struct rq *rq,
struct rq_flags *rf)
__releases(rq->lock)
@@ -2894,6 +2853,7 @@
const struct cpumask *cpu_allowed_mask = task_cpu_possible_mask(p);
const struct cpumask *cpu_valid_mask = cpu_active_mask;
bool kthread = p->flags & PF_KTHREAD;
+ struct cpumask *user_mask = NULL;
unsigned int dest_cpu;
int ret = 0;
@@ -2913,7 +2873,7 @@
cpu_valid_mask = cpu_online_mask;
}
- if (!kthread && !cpumask_subset(ctx->new_mask, cpu_allowed_mask)) {
+ if (!kthread && !cpumask_subset(new_mask, cpu_allowed_mask)) {
ret = -EINVAL;
goto out;
}
@@ -2922,18 +2882,18 @@
* Must re-check here, to close a race against __kthread_bind(),
* sched_setaffinity() is not guaranteed to observe the flag.
*/
- if ((ctx->flags & SCA_CHECK) && (p->flags & PF_NO_SETAFFINITY)) {
+ if ((flags & SCA_CHECK) && (p->flags & PF_NO_SETAFFINITY)) {
ret = -EINVAL;
goto out;
}
- if (!(ctx->flags & SCA_MIGRATE_ENABLE)) {
- if (cpumask_equal(&p->cpus_mask, ctx->new_mask))
+ if (!(flags & SCA_MIGRATE_ENABLE)) {
+ if (cpumask_equal(&p->cpus_mask, new_mask))
goto out;
if (WARN_ON_ONCE(p == current &&
is_migration_disabled(p) &&
- !cpumask_test_cpu(task_cpu(p), ctx->new_mask))) {
+ !cpumask_test_cpu(task_cpu(p), new_mask))) {
ret = -EBUSY;
goto out;
}
@@ -2944,18 +2904,25 @@
* for groups of tasks (ie. cpuset), so that load balancing is not
* immediately required to distribute the tasks within their new mask.
*/
- dest_cpu = cpumask_any_and_distribute(cpu_valid_mask, ctx->new_mask);
- trace_android_rvh_set_cpus_allowed_ptr_locked(cpu_valid_mask, ctx->new_mask, &dest_cpu);
- trace_android_rvh_set_cpus_allowed_by_task(cpu_valid_mask, ctx->new_mask, p, &dest_cpu);
+ dest_cpu = cpumask_any_and_distribute(cpu_valid_mask, new_mask);
+ trace_android_rvh_set_cpus_allowed_ptr_locked(cpu_valid_mask, new_mask, &dest_cpu);
+ trace_android_rvh_set_cpus_allowed_by_task(cpu_valid_mask, new_mask, p, &dest_cpu);
if (dest_cpu >= nr_cpu_ids) {
ret = -EINVAL;
goto out;
}
- __do_set_cpus_allowed(p, ctx);
+ __do_set_cpus_allowed(p, new_mask, flags);
- return affine_move_task(rq, p, rf, dest_cpu, ctx->flags);
+ if (flags & SCA_USER)
+ user_mask = clear_user_cpus_ptr(p);
+
+ ret = affine_move_task(rq, p, rf, dest_cpu, flags);
+
+ kfree(user_mask);
+
+ return ret;
out:
task_rq_unlock(rq, p, rf);
@@ -2973,43 +2940,25 @@
* call is not atomic; no spinlocks may be held.
*/
static int __set_cpus_allowed_ptr(struct task_struct *p,
- struct affinity_context *ctx)
+ const struct cpumask *new_mask, u32 flags)
{
- struct cpumask *cpus;
struct rq_flags rf;
struct rq *rq;
rq = task_rq_lock(p, &rf);
- cpus = per_cpu(scratch_mask, rq->cpu);
- /*
- * Masking should be skipped if SCA_USER or any of the SCA_MIGRATE_*
- * flags are set.
- */
- if (p->user_cpus_ptr &&
- !(ctx->flags & (SCA_USER | SCA_MIGRATE_ENABLE | SCA_MIGRATE_DISABLE)) &&
- cpumask_and(cpus, ctx->new_mask, p->user_cpus_ptr))
- ctx->new_mask = cpus;
-
- return __set_cpus_allowed_ptr_locked(p, ctx, rq, &rf);
+ return __set_cpus_allowed_ptr_locked(p, new_mask, flags, rq, &rf);
}
int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask)
{
- struct affinity_context ac = {
- .new_mask = new_mask,
- .flags = 0,
- };
-
- return __set_cpus_allowed_ptr(p, &ac);
+ return __set_cpus_allowed_ptr(p, new_mask, 0);
}
EXPORT_SYMBOL_GPL(set_cpus_allowed_ptr);
/*
* Change a given task's CPU affinity to the intersection of its current
- * affinity mask and @subset_mask, writing the resulting mask to @new_mask.
- * If user_cpus_ptr is defined, use it as the basis for restricting CPU
- * affinity or use cpu_online_mask instead.
- *
+ * affinity mask and @subset_mask, writing the resulting mask to @new_mask
+ * and pointing @p->user_cpus_ptr to a copy of the old mask.
* If the resulting mask is empty, leave the affinity unchanged and return
* -EINVAL.
*/
@@ -3017,14 +2966,17 @@
struct cpumask *new_mask,
const struct cpumask *subset_mask)
{
- struct affinity_context ac = {
- .new_mask = new_mask,
- .flags = 0,
- };
+ struct cpumask *user_mask = NULL;
struct rq_flags rf;
struct rq *rq;
int err;
+ if (!p->user_cpus_ptr) {
+ user_mask = kmalloc(cpumask_size(), GFP_KERNEL);
+ if (!user_mask)
+ return -ENOMEM;
+ }
+
rq = task_rq_lock(p, &rf);
/*
@@ -3037,21 +2989,31 @@
goto err_unlock;
}
- if (!cpumask_and(new_mask, task_user_cpus(p), subset_mask)) {
+ if (!cpumask_and(new_mask, &p->cpus_mask, subset_mask)) {
err = -EINVAL;
goto err_unlock;
}
- return __set_cpus_allowed_ptr_locked(p, &ac, rq, &rf);
+ /*
+ * We're about to butcher the task affinity, so keep track of what
+ * the user asked for in case we're able to restore it later on.
+ */
+ if (user_mask) {
+ cpumask_copy(user_mask, p->cpus_ptr);
+ p->user_cpus_ptr = user_mask;
+ }
+
+ return __set_cpus_allowed_ptr_locked(p, new_mask, 0, rq, &rf);
err_unlock:
task_rq_unlock(rq, p, &rf);
+ kfree(user_mask);
return err;
}
/*
* Restrict the CPU affinity of task @p so that it is a subset of
- * task_cpu_possible_mask() and point @p->user_cpus_ptr to a copy of the
+ * task_cpu_possible_mask() and point @p->user_cpu_ptr to a copy of the
* old affinity mask. If the resulting mask is empty, we warn and walk
* up the cpuset hierarchy until we find a suitable mask.
*/
@@ -3097,29 +3059,34 @@
}
static int
-__sched_setaffinity(struct task_struct *p, struct affinity_context *ctx);
+__sched_setaffinity(struct task_struct *p, const struct cpumask *mask);
/*
* Restore the affinity of a task @p which was previously restricted by a
- * call to force_compatible_cpus_allowed_ptr().
+ * call to force_compatible_cpus_allowed_ptr(). This will clear (and free)
+ * @p->user_cpus_ptr.
*
* It is the caller's responsibility to serialise this with any calls to
* force_compatible_cpus_allowed_ptr(@p).
*/
void relax_compatible_cpus_allowed_ptr(struct task_struct *p)
{
- struct affinity_context ac = {
- .new_mask = task_user_cpus(p),
- .flags = 0,
- };
- int ret;
+ struct cpumask *user_mask = p->user_cpus_ptr;
+ unsigned long flags;
/*
- * Try to restore the old affinity mask with __sched_setaffinity().
- * Cpuset masking will be done there too.
+ * Try to restore the old affinity mask. If this fails, then
+ * we free the mask explicitly to avoid it being inherited across
+ * a subsequent fork().
*/
- ret = __sched_setaffinity(p, &ac);
- WARN_ON_ONCE(ret);
+ if (!user_mask || !__sched_setaffinity(p, user_mask))
+ return;
+
+ raw_spin_lock_irqsave(&p->pi_lock, flags);
+ user_mask = clear_user_cpus_ptr(p);
+ raw_spin_unlock_irqrestore(&p->pi_lock, flags);
+
+ kfree(user_mask);
}
void set_task_cpu(struct task_struct *p, unsigned int new_cpu)
@@ -3603,9 +3570,10 @@
#else /* CONFIG_SMP */
static inline int __set_cpus_allowed_ptr(struct task_struct *p,
- struct affinity_context *ctx)
+ const struct cpumask *new_mask,
+ u32 flags)
{
- return set_cpus_allowed_ptr(p, ctx->new_mask);
+ return set_cpus_allowed_ptr(p, new_mask);
}
static inline void migrate_disable_switch(struct rq *rq, struct task_struct *p) { }
@@ -8184,7 +8152,7 @@
#endif
static int
-__sched_setaffinity(struct task_struct *p, struct affinity_context *ctx)
+__sched_setaffinity(struct task_struct *p, const struct cpumask *mask)
{
int retval;
cpumask_var_t cpus_allowed, new_mask;
@@ -8198,16 +8166,13 @@
}
cpuset_cpus_allowed(p, cpus_allowed);
- cpumask_and(new_mask, ctx->new_mask, cpus_allowed);
-
- ctx->new_mask = new_mask;
- ctx->flags |= SCA_CHECK;
+ cpumask_and(new_mask, mask, cpus_allowed);
retval = dl_task_check_affinity(p, new_mask);
if (retval)
goto out_free_new_mask;
-
- retval = __set_cpus_allowed_ptr(p, ctx);
+again:
+ retval = __set_cpus_allowed_ptr(p, new_mask, SCA_CHECK | SCA_USER);
if (retval)
goto out_free_new_mask;
@@ -8218,24 +8183,7 @@
* Just reset the cpumask to the cpuset's cpus_allowed.
*/
cpumask_copy(new_mask, cpus_allowed);
-
- /*
- * If SCA_USER is set, a 2nd call to __set_cpus_allowed_ptr()
- * will restore the previous user_cpus_ptr value.
- *
- * In the unlikely event a previous user_cpus_ptr exists,
- * we need to further restrict the mask to what is allowed
- * by that old user_cpus_ptr.
- */
- if (unlikely((ctx->flags & SCA_USER) && ctx->user_mask)) {
- bool empty = !cpumask_and(new_mask, new_mask,
- ctx->user_mask);
-
- if (WARN_ON_ONCE(empty))
- cpumask_copy(new_mask, cpus_allowed);
- }
- __set_cpus_allowed_ptr(p, ctx);
- retval = -EINVAL;
+ goto again;
}
out_free_new_mask:
@@ -8247,8 +8195,6 @@
long sched_setaffinity(pid_t pid, const struct cpumask *in_mask)
{
- struct affinity_context ac;
- struct cpumask *user_mask;
struct task_struct *p;
int retval = 0;
int skip = 0;
@@ -8287,21 +8233,8 @@
if (retval)
goto out_put_task;
- user_mask = kmalloc(cpumask_size(), GFP_KERNEL);
- if (!user_mask) {
- retval = -ENOMEM;
- goto out_put_task;
- }
- cpumask_copy(user_mask, in_mask);
- ac = (struct affinity_context){
- .new_mask = in_mask,
- .user_mask = user_mask,
- .flags = SCA_USER,
- };
-
- retval = __sched_setaffinity(p, &ac);
- trace_android_rvh_sched_setaffinity(p, ac.new_mask, &retval);
- kfree(ac.user_mask);
+ retval = __sched_setaffinity(p, in_mask);
+ trace_android_rvh_sched_setaffinity(p, in_mask, &retval);
out_put_task:
put_task_struct(p);
@@ -8904,12 +8837,6 @@
*/
void __init init_idle(struct task_struct *idle, int cpu)
{
-#ifdef CONFIG_SMP
- struct affinity_context ac = (struct affinity_context) {
- .new_mask = cpumask_of(cpu),
- .flags = 0,
- };
-#endif
struct rq *rq = cpu_rq(cpu);
unsigned long flags;
@@ -8942,7 +8869,7 @@
*
* And since this is boot we can forgo the serialization.
*/
- set_cpus_allowed_common(idle, &ac);
+ set_cpus_allowed_common(idle, cpumask_of(cpu), 0);
#endif
/*
* We're having a chicken and egg problem, even though we are
@@ -9654,8 +9581,6 @@
cpumask_size(), GFP_KERNEL, cpu_to_node(i));
per_cpu(select_idle_mask, i) = (cpumask_var_t)kzalloc_node(
cpumask_size(), GFP_KERNEL, cpu_to_node(i));
- per_cpu(scratch_mask, i) = (cpumask_var_t)kzalloc_node(
- cpumask_size(), GFP_KERNEL, cpu_to_node(i));
}
#endif /* CONFIG_CPUMASK_OFFSTACK */
diff --git a/kernel/sched/cpupri.c b/kernel/sched/cpupri.c
index 6f5fd1d..a4a0c21 100644
--- a/kernel/sched/cpupri.c
+++ b/kernel/sched/cpupri.c
@@ -366,6 +366,7 @@
{
int cpu = raw_smp_processor_id();
- return cpu_rq(cpu)->rd->cpupri.cpu_to_pri[cpu] > CPUPRI_NORMAL;
+ return (cpu_rq(cpu)->rd->cpupri.cpu_to_pri[cpu] > CPUPRI_NORMAL) &&
+ (cpu_rq(cpu)->rt.rt_throttled == 0);
}
#endif
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index ce4b858..16a8c78 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -2341,7 +2341,9 @@
}
}
-void set_cpus_allowed_dl(struct task_struct *p, struct affinity_context *ctx)
+static void set_cpus_allowed_dl(struct task_struct *p,
+ const struct cpumask *new_mask,
+ u32 flags)
{
struct root_domain *src_rd;
struct rq *rq;
@@ -2356,7 +2358,7 @@
* update. We already made space for us in the destination
* domain (see cpuset_can_attach()).
*/
- if (!cpumask_intersects(src_rd->span, ctx->new_mask)) {
+ if (!cpumask_intersects(src_rd->span, new_mask)) {
struct dl_bw *src_dl_b;
src_dl_b = dl_bw_of(cpu_of(rq));
@@ -2370,19 +2372,7 @@
raw_spin_unlock(&src_dl_b->lock);
}
- set_cpus_allowed_common(p, ctx);
-}
-
-static void set_cpus_allowed_dl_cb(struct task_struct *p,
- const struct cpumask *new_mask,
- u32 flags)
-{
- struct affinity_context ac = {
- .new_mask = new_mask,
- .flags = flags,
- };
- WARN_ONCE(1, "Unexpected use of dl_sched_class::set_cpus_allowed()");
- set_cpus_allowed_dl(p, &ac);
+ set_cpus_allowed_common(p, new_mask, flags);
}
/* Assumes rq->lock is held */
@@ -2577,7 +2567,7 @@
.pick_task = pick_task_dl,
.select_task_rq = select_task_rq_dl,
.migrate_task_rq = migrate_task_rq_dl,
- .set_cpus_allowed = set_cpus_allowed_dl_cb,
+ .set_cpus_allowed = set_cpus_allowed_dl,
.rq_online = rq_online_dl,
.rq_offline = rq_offline_dl,
.task_woken = task_woken_dl,
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 550dd20..71bce8f 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -11974,7 +11974,7 @@
.rq_offline = rq_offline_fair,
.task_dead = task_dead_fair,
- .set_cpus_allowed = set_cpus_allowed_common_cb,
+ .set_cpus_allowed = set_cpus_allowed_common,
#endif
.task_tick = task_tick_fair,
diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c
index 317d585..499a3e2 100644
--- a/kernel/sched/idle.c
+++ b/kernel/sched/idle.c
@@ -516,7 +516,7 @@
.balance = balance_idle,
.pick_task = pick_task_idle,
.select_task_rq = select_task_rq_idle,
- .set_cpus_allowed = set_cpus_allowed_common_cb,
+ .set_cpus_allowed = set_cpus_allowed_common,
#endif
.task_tick = task_tick_idle,
diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c
index 41dc5e5fe..15c79a9 100644
--- a/kernel/sched/psi.c
+++ b/kernel/sched/psi.c
@@ -151,6 +151,8 @@
#include <linux/psi.h>
#include "sched.h"
+#include <trace/hooks/psi.h>
+
static int psi_bug __read_mostly;
DEFINE_STATIC_KEY_FALSE(psi_disabled);
@@ -576,12 +578,16 @@
if (now < t->last_event_time + t->win.size)
continue;
+ trace_android_vh_psi_event(t);
+
/* Generate an event */
if (cmpxchg(&t->event, 0, 1) == 0)
wake_up_interruptible(&t->event_wait);
t->last_event_time = now;
}
+ trace_android_vh_psi_group(group);
+
if (new_stall)
memcpy(group->polling_total, total,
sizeof(group->polling_total));
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index eeedc4c..7c9e219 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -2635,7 +2635,7 @@
.balance = balance_rt,
.pick_task = pick_task_rt,
.select_task_rq = select_task_rq_rt,
- .set_cpus_allowed = set_cpus_allowed_common_cb,
+ .set_cpus_allowed = set_cpus_allowed_common,
.rq_online = rq_online_rt,
.rq_offline = rq_offline_rt,
.task_woken = task_woken_rt,
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 4677126..683429f 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -1559,7 +1559,6 @@
*/
unsigned int clock_update_flags;
#endif
-
};
#ifdef CONFIG_SMP
@@ -1910,13 +1909,6 @@
extern int sched_update_scaling(void);
-static inline const struct cpumask *task_user_cpus(struct task_struct *p)
-{
- if (!p->user_cpus_ptr)
- return cpu_possible_mask; /* &init_task.cpus_mask */
- return p->user_cpus_ptr;
-}
-
extern void flush_smp_call_function_from_idle(void);
#else /* !CONFIG_SMP: */
@@ -2173,12 +2165,6 @@
#define RETRY_TASK ((void *)-1UL)
-struct affinity_context {
- const struct cpumask *new_mask;
- struct cpumask *user_mask;
- unsigned int flags;
-};
-
struct sched_class {
#ifdef CONFIG_UCLAMP_TASK
@@ -2322,19 +2308,7 @@
extern void trigger_load_balance(struct rq *rq);
-extern void set_cpus_allowed_dl(struct task_struct *p, struct affinity_context *ctx);
-extern void set_cpus_allowed_common(struct task_struct *p, struct affinity_context *ctx);
-
-static inline void set_cpus_allowed_common_cb(struct task_struct *p, const struct cpumask *new_mask, u32 flags)
-{
- struct affinity_context ac = {
- .new_mask = new_mask,
- .flags = flags,
- };
-
- WARN_ONCE(1, "Unexpected use of sched_class::set_cpus_allowed()");
- set_cpus_allowed_common(p, &ac);
-}
+extern void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_mask, u32 flags);
static inline struct task_struct *get_push_task(struct rq *rq)
{
diff --git a/kernel/sched/stop_task.c b/kernel/sched/stop_task.c
index ad8fa4d..f988ebe 100644
--- a/kernel/sched/stop_task.c
+++ b/kernel/sched/stop_task.c
@@ -134,7 +134,7 @@
.balance = balance_stop,
.pick_task = pick_task_stop,
.select_task_rq = select_task_rq_stop,
- .set_cpus_allowed = set_cpus_allowed_common_cb,
+ .set_cpus_allowed = set_cpus_allowed_common,
#endif
.task_tick = task_tick_stop,
diff --git a/mm/cma.c b/mm/cma.c
index 4212604..812c3a9 100644
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -112,13 +112,6 @@
goto out_error;
/*
- * The CMA region was marked as allocated by kmemleak when it was either
- * dynamically allocated or statically reserved. In any case,
- * inform kmemleak that the region is about to be freed to the page allocator.
- */
- kmemleak_free_part_phys(cma_get_base(cma), cma_get_size(cma));
-
- /*
* alloc_contig_range() requires the pfn range specified to be in the
* same zone. Simplify by forcing the entire CMA resv range to be in the
* same zone.
@@ -337,8 +330,6 @@
ret = -EBUSY;
goto err;
}
-
- kmemleak_alloc_phys(base, size, 0, 0);
} else {
phys_addr_t addr = 0;
@@ -380,6 +371,11 @@
}
}
+ /*
+ * kmemleak scans/reads tracked objects for pointers to other
+ * objects but this address isn't mapped and accessible
+ */
+ kmemleak_ignore_phys(addr);
base = addr;
}
diff --git a/mm/memory.c b/mm/memory.c
index 41a44f2..8ce1033 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -253,6 +253,11 @@
vm_area_free_no_check(vma);
}
+#if ALLOC_SPLIT_PTLOCKS
+static void wait_for_smp_sync(void *arg)
+{
+}
+#endif
#endif /* CONFIG_SPECULATIVE_PAGE_FAULT */
/*
@@ -272,6 +277,14 @@
*/
spinlock_t *ptl = pmd_lock(tlb->mm, pmd);
spin_unlock(ptl);
+#if ALLOC_SPLIT_PTLOCKS
+ /*
+ * The __pte_map_lock can still be working on the ->ptl in the read side
+ * critical section while ->ptl is freed which results into the use-after
+ * -free. Sync it using the smp_call_().
+ */
+ smp_call_function(wait_for_smp_sync, NULL, 1);
+#endif
#endif
pmd_clear(pmd);
pte_free_tlb(tlb, token, addr);
diff --git a/mm/page_ext.c b/mm/page_ext.c
index c429973..39daf13 100644
--- a/mm/page_ext.c
+++ b/mm/page_ext.c
@@ -156,7 +156,7 @@
/**
* page_ext_put() - Working with page extended information is done.
- * @page_ext - Page extended information received from page_ext_get().
+ * @page_ext: Page extended information received from page_ext_get().
*
* The page extended information of the page may not be valid after this
* function is called.
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 48e873c..c5c016f 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2952,8 +2952,7 @@
struct mem_cgroup *memcg = lruvec_memcg(lruvec);
struct pglist_data *pgdat = lruvec_pgdat(lruvec);
- if (!can_demote(pgdat->node_id, sc) &&
- mem_cgroup_get_nr_swap_pages(memcg) < MIN_LRU_BATCH)
+ if (!can_demote(pgdat->node_id, sc))
return 0;
return mem_cgroup_swappiness(memcg);
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 641f6f81..7c6e874 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3244,7 +3244,7 @@
if (err)
return err;
- cfg80211_ch_switch_notify(sdata->dev, &sdata->csa_chandef, 0);
+ cfg80211_ch_switch_notify(sdata->dev, &sdata->csa_chandef, 0, 0);
return 0;
}
@@ -3511,7 +3511,7 @@
IEEE80211_QUEUE_STOP_REASON_CSA);
cfg80211_ch_switch_started_notify(sdata->dev, &sdata->csa_chandef, 0,
- params->count, params->block_tx);
+ params->count, params->block_tx, 0);
if (changed) {
ieee80211_bss_info_change_notify(sdata, changed);
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 107a15a..6ac1f0c 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1240,7 +1240,7 @@
return;
}
- cfg80211_ch_switch_notify(sdata->dev, &sdata->reserved_chandef, 0);
+ cfg80211_ch_switch_notify(sdata->dev, &sdata->reserved_chandef, 0, 0);
}
void ieee80211_chswitch_done(struct ieee80211_vif *vif, bool success)
@@ -1442,7 +1442,7 @@
mutex_unlock(&local->mtx);
cfg80211_ch_switch_started_notify(sdata->dev, &csa_ie.chandef, 0,
- csa_ie.count, csa_ie.mode);
+ csa_ie.count, csa_ie.mode, 0);
if (local->ops->channel_switch) {
/* use driver's channel switch callback */
diff --git a/net/wireless/ap.c b/net/wireless/ap.c
index e689232..0962770 100644
--- a/net/wireless/ap.c
+++ b/net/wireless/ap.c
@@ -39,7 +39,7 @@
wdev->u.ap.ssid_len = 0;
rdev_set_qos_map(rdev, dev, NULL);
if (notify)
- nl80211_send_ap_stopped(wdev);
+ nl80211_send_ap_stopped(wdev, link_id);
/* Should we apply the grace period during beaconing interface
* shutdown also?
diff --git a/net/wireless/chan.c b/net/wireless/chan.c
index 0e5835c..0b7e81d 100644
--- a/net/wireless/chan.c
+++ b/net/wireless/chan.c
@@ -1460,3 +1460,72 @@
}
}
EXPORT_SYMBOL(wdev_chandef);
+
+struct cfg80211_per_bw_puncturing_values {
+ u8 len;
+ const u16 *valid_values;
+};
+
+static const u16 puncturing_values_80mhz[] = {
+ 0x8, 0x4, 0x2, 0x1
+};
+
+static const u16 puncturing_values_160mhz[] = {
+ 0x80, 0x40, 0x20, 0x10, 0x8, 0x4, 0x2, 0x1, 0xc0, 0x30, 0xc, 0x3
+};
+
+static const u16 puncturing_values_320mhz[] = {
+ 0xc000, 0x3000, 0xc00, 0x300, 0xc0, 0x30, 0xc, 0x3, 0xf000, 0xf00,
+ 0xf0, 0xf, 0xfc00, 0xf300, 0xf0c0, 0xf030, 0xf00c, 0xf003, 0xc00f,
+ 0x300f, 0xc0f, 0x30f, 0xcf, 0x3f
+};
+
+#define CFG80211_PER_BW_VALID_PUNCTURING_VALUES(_bw) \
+ { \
+ .len = ARRAY_SIZE(puncturing_values_ ## _bw ## mhz), \
+ .valid_values = puncturing_values_ ## _bw ## mhz \
+ }
+
+static const struct cfg80211_per_bw_puncturing_values per_bw_puncturing[] = {
+ CFG80211_PER_BW_VALID_PUNCTURING_VALUES(80),
+ CFG80211_PER_BW_VALID_PUNCTURING_VALUES(160),
+ CFG80211_PER_BW_VALID_PUNCTURING_VALUES(320)
+};
+
+bool cfg80211_valid_disable_subchannel_bitmap(u16 *bitmap,
+ const struct cfg80211_chan_def *chandef)
+{
+ u32 idx, i, start_freq;
+
+ switch (chandef->width) {
+ case NL80211_CHAN_WIDTH_80:
+ idx = 0;
+ start_freq = chandef->center_freq1 - 40;
+ break;
+ case NL80211_CHAN_WIDTH_160:
+ idx = 1;
+ start_freq = chandef->center_freq1 - 80;
+ break;
+ case NL80211_CHAN_WIDTH_320:
+ idx = 2;
+ start_freq = chandef->center_freq1 - 160;
+ break;
+ default:
+ *bitmap = 0;
+ break;
+ }
+
+ if (!*bitmap)
+ return true;
+
+ /* check if primary channel is punctured */
+ if (*bitmap & (u16)BIT((chandef->chan->center_freq - start_freq) / 20))
+ return false;
+
+ for (i = 0; i < per_bw_puncturing[idx].len; i++)
+ if (per_bw_puncturing[idx].valid_values[i] == *bitmap)
+ return true;
+
+ return false;
+}
+EXPORT_SYMBOL(cfg80211_valid_disable_subchannel_bitmap);
diff --git a/net/wireless/core.h b/net/wireless/core.h
index 775e16c..af85d89 100644
--- a/net/wireless/core.h
+++ b/net/wireless/core.h
@@ -271,6 +271,8 @@
} ij;
struct {
u8 bssid[ETH_ALEN];
+ const u8 *td_bitmap;
+ u8 td_bitmap_len;
} pa;
};
};
@@ -409,7 +411,8 @@
bool wextev);
void __cfg80211_roamed(struct wireless_dev *wdev,
struct cfg80211_roam_info *info);
-void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid);
+void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid,
+ const u8 *td_bitmap, u8 td_bitmap_len);
int cfg80211_mgd_wext_connect(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev);
void cfg80211_autodisconnect_wk(struct work_struct *work);
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c
index 7149dfb..3f0631a 100644
--- a/net/wireless/mlme.c
+++ b/net/wireless/mlme.c
@@ -740,7 +740,10 @@
case NL80211_IFTYPE_AP:
case NL80211_IFTYPE_P2P_GO:
case NL80211_IFTYPE_AP_VLAN:
- if (!ether_addr_equal(mgmt->bssid, wdev_address(wdev)))
+ if (!ether_addr_equal(mgmt->bssid, wdev_address(wdev)) &&
+ (params->link_id < 0 ||
+ !ether_addr_equal(mgmt->bssid,
+ wdev->links[params->link_id].addr)))
err = -EINVAL;
break;
case NL80211_IFTYPE_MESH_POINT:
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 7b400cb..046d36b 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -462,6 +462,11 @@
[NL80211_STA_WME_MAX_SP] = { .type = NLA_U8 },
};
+static struct netlink_range_validation nl80211_punct_bitmap_range = {
+ .min = 0,
+ .max = 0xffff,
+};
+
static const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
[0] = { .strict_start_type = NL80211_ATTR_HE_OBSS_PD },
[NL80211_ATTR_WIPHY] = { .type = NLA_U32 },
@@ -805,6 +810,8 @@
[NL80211_ATTR_MLD_ADDR] = NLA_POLICY_EXACT_LEN(ETH_ALEN),
[NL80211_ATTR_MLO_SUPPORT] = { .type = NLA_FLAG },
[NL80211_ATTR_MAX_NUM_AKM_SUITES] = { .type = NLA_REJECT },
+ [NL80211_ATTR_PUNCT_BITMAP] =
+ NLA_POLICY_FULL_RANGE(NLA_U32, &nl80211_punct_bitmap_range),
};
/* policy for the key attributes */
@@ -883,7 +890,7 @@
},
[NL80211_REKEY_DATA_KCK] = {
.type = NLA_BINARY,
- .len = NL80211_KCK_EXT_LEN
+ .len = NL80211_KCK_EXT_LEN_32
},
[NL80211_REKEY_DATA_REPLAY_CTR] = NLA_POLICY_EXACT_LEN(NL80211_REPLAY_CTR_LEN),
[NL80211_REKEY_DATA_AKM] = { .type = NLA_U32 },
@@ -1548,10 +1555,14 @@
if (wdev->connected)
return 0;
return -ENOLINK;
+ case NL80211_IFTYPE_NAN:
+ if (wiphy_ext_feature_isset(wdev->wiphy,
+ NL80211_EXT_FEATURE_SECURE_NAN))
+ return 0;
+ return -EINVAL;
case NL80211_IFTYPE_UNSPECIFIED:
case NL80211_IFTYPE_OCB:
case NL80211_IFTYPE_MONITOR:
- case NL80211_IFTYPE_NAN:
case NL80211_IFTYPE_P2P_DEVICE:
case NL80211_IFTYPE_WDS:
case NUM_NL80211_IFTYPES:
@@ -3180,6 +3191,21 @@
wdev->iftype == NL80211_IFTYPE_P2P_GO;
}
+static int nl80211_parse_punct_bitmap(struct cfg80211_registered_device *rdev,
+ struct genl_info *info,
+ const struct cfg80211_chan_def *chandef,
+ u16 *punct_bitmap)
+{
+ if (!wiphy_ext_feature_isset(&rdev->wiphy, NL80211_EXT_FEATURE_PUNCT))
+ return -EINVAL;
+
+ *punct_bitmap = nla_get_u32(info->attrs[NL80211_ATTR_PUNCT_BITMAP]);
+ if (!cfg80211_valid_disable_subchannel_bitmap(punct_bitmap, chandef))
+ return -EINVAL;
+
+ return 0;
+}
+
int nl80211_parse_chandef(struct cfg80211_registered_device *rdev,
struct genl_info *info,
struct cfg80211_chan_def *chandef)
@@ -3875,6 +3901,9 @@
struct cfg80211_chan_def chandef = {};
int ret;
+ if (!link)
+ goto nla_put_failure;
+
if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id))
goto nla_put_failure;
if (nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN,
@@ -5922,6 +5951,14 @@
goto out;
}
+ if (info->attrs[NL80211_ATTR_PUNCT_BITMAP]) {
+ err = nl80211_parse_punct_bitmap(rdev, info,
+ ¶ms->chandef,
+ ¶ms->punct_bitmap);
+ if (err)
+ goto out;
+ }
+
if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, ¶ms->chandef,
wdev->iftype)) {
err = -EINVAL;
@@ -6531,6 +6568,22 @@
sinfo->assoc_req_ies))
goto nla_put_failure;
+ if (sinfo->assoc_resp_ies_len &&
+ nla_put(msg, NL80211_ATTR_RESP_IE, sinfo->assoc_resp_ies_len,
+ sinfo->assoc_resp_ies))
+ goto nla_put_failure;
+
+ if (sinfo->mlo_params_valid) {
+ if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID,
+ sinfo->assoc_link_id))
+ goto nla_put_failure;
+
+ if (!is_zero_ether_addr(sinfo->mld_addr) &&
+ nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN,
+ sinfo->mld_addr))
+ goto nla_put_failure;
+ }
+
cfg80211_sinfo_release_content(sinfo);
genlmsg_end(msg, hdr);
return 0;
@@ -10061,6 +10114,14 @@
if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX])
params.block_tx = true;
+ if (info->attrs[NL80211_ATTR_PUNCT_BITMAP]) {
+ err = nl80211_parse_punct_bitmap(rdev, info,
+ ¶ms.chandef,
+ ¶ms.punct_bitmap);
+ if (err)
+ goto free;
+ }
+
wdev_lock(wdev);
err = rdev_channel_switch(rdev, dev, ¶ms);
wdev_unlock(wdev);
@@ -12257,6 +12318,10 @@
case NL80211_IFTYPE_P2P_DEVICE:
break;
case NL80211_IFTYPE_NAN:
+ if (!wiphy_ext_feature_isset(wdev->wiphy,
+ NL80211_EXT_FEATURE_SECURE_NAN))
+ return -EOPNOTSUPP;
+ break;
default:
return -EOPNOTSUPP;
}
@@ -12314,6 +12379,10 @@
case NL80211_IFTYPE_P2P_GO:
break;
case NL80211_IFTYPE_NAN:
+ if (!wiphy_ext_feature_isset(wdev->wiphy,
+ NL80211_EXT_FEATURE_SECURE_NAN))
+ return -EOPNOTSUPP;
+ break;
default:
return -EOPNOTSUPP;
}
@@ -12451,6 +12520,10 @@
case NL80211_IFTYPE_P2P_DEVICE:
break;
case NL80211_IFTYPE_NAN:
+ if (!wiphy_ext_feature_isset(wdev->wiphy,
+ NL80211_EXT_FEATURE_SECURE_NAN))
+ return -EOPNOTSUPP;
+ break;
default:
return -EOPNOTSUPP;
}
@@ -13809,7 +13882,9 @@
return -ERANGE;
if (nla_len(tb[NL80211_REKEY_DATA_KCK]) != NL80211_KCK_LEN &&
!(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK &&
- nla_len(tb[NL80211_REKEY_DATA_KEK]) == NL80211_KCK_EXT_LEN))
+ nla_len(tb[NL80211_REKEY_DATA_KCK]) == NL80211_KCK_EXT_LEN) &&
+ !(rdev->wiphy.flags & WIPHY_FLAG_SUPPORTS_EXT_KCK_32 &&
+ nla_len(tb[NL80211_REKEY_DATA_KCK]) == NL80211_KCK_EXT_LEN_32))
return -ERANGE;
rekey_data.kek = nla_data(tb[NL80211_REKEY_DATA_KEK]);
@@ -17235,7 +17310,7 @@
.name = NL80211_GENL_NAME, /* have users key off the name instead */
.hdrsize = 0, /* no private header */
.version = 1, /* no particular meaning now */
- .maxattr = NL80211_ATTR_MAX_NUM_AKM_SUITES,
+ .maxattr = NL80211_ATTR_PUNCT_BITMAP,
.policy = nl80211_policy,
.netnsok = true,
.pre_doit = nl80211_pre_doit,
@@ -17948,7 +18023,8 @@
}
void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev,
- struct net_device *netdev, const u8 *bssid)
+ struct net_device *netdev, const u8 *bssid,
+ const u8 *td_bitmap, u8 td_bitmap_len)
{
struct sk_buff *msg;
void *hdr;
@@ -17968,6 +18044,11 @@
nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, bssid))
goto nla_put_failure;
+ if ((td_bitmap_len > 0) && td_bitmap)
+ if (nla_put(msg, NL80211_ATTR_TD_BITMAP,
+ td_bitmap_len, td_bitmap))
+ goto nla_put_failure;
+
genlmsg_end(msg, hdr);
genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
@@ -18947,7 +19028,7 @@
struct cfg80211_chan_def *chandef,
gfp_t gfp,
enum nl80211_commands notif,
- u8 count, bool quiet)
+ u8 count, bool quiet, u16 punct_bitmap)
{
struct wireless_dev *wdev = netdev->ieee80211_ptr;
struct sk_buff *msg;
@@ -18981,6 +19062,9 @@
goto nla_put_failure;
}
+ if (nla_put_u32(msg, NL80211_ATTR_PUNCT_BITMAP, punct_bitmap))
+ goto nla_put_failure;
+
genlmsg_end(msg, hdr);
genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
@@ -18993,7 +19077,7 @@
void cfg80211_ch_switch_notify(struct net_device *dev,
struct cfg80211_chan_def *chandef,
- unsigned int link_id)
+ unsigned int link_id, u16 punct_bitmap)
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct wiphy *wiphy = wdev->wiphy;
@@ -19002,7 +19086,7 @@
ASSERT_WDEV_LOCK(wdev);
WARN_INVALID_LINK_ID(wdev, link_id);
- trace_cfg80211_ch_switch_notify(dev, chandef, link_id);
+ trace_cfg80211_ch_switch_notify(dev, chandef, link_id, punct_bitmap);
switch (wdev->iftype) {
case NL80211_IFTYPE_STATION:
@@ -19030,14 +19114,15 @@
cfg80211_sched_dfs_chan_update(rdev);
nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL,
- NL80211_CMD_CH_SWITCH_NOTIFY, 0, false);
+ NL80211_CMD_CH_SWITCH_NOTIFY, 0, false,
+ punct_bitmap);
}
EXPORT_SYMBOL(cfg80211_ch_switch_notify);
void cfg80211_ch_switch_started_notify(struct net_device *dev,
struct cfg80211_chan_def *chandef,
unsigned int link_id, u8 count,
- bool quiet)
+ bool quiet, u16 punct_bitmap)
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct wiphy *wiphy = wdev->wiphy;
@@ -19046,11 +19131,13 @@
ASSERT_WDEV_LOCK(wdev);
WARN_INVALID_LINK_ID(wdev, link_id);
- trace_cfg80211_ch_switch_started_notify(dev, chandef, link_id);
+ trace_cfg80211_ch_switch_started_notify(dev, chandef, link_id,
+ punct_bitmap);
+
nl80211_ch_switch_notify(rdev, dev, link_id, chandef, GFP_KERNEL,
NL80211_CMD_CH_SWITCH_STARTED_NOTIFY,
- count, quiet);
+ count, quiet, punct_bitmap);
}
EXPORT_SYMBOL(cfg80211_ch_switch_started_notify);
@@ -19654,7 +19741,7 @@
}
EXPORT_SYMBOL(cfg80211_crit_proto_stopped);
-void nl80211_send_ap_stopped(struct wireless_dev *wdev)
+void nl80211_send_ap_stopped(struct wireless_dev *wdev, unsigned int link_id)
{
struct wiphy *wiphy = wdev->wiphy;
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
@@ -19672,7 +19759,9 @@
if (nla_put_u32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx) ||
nla_put_u32(msg, NL80211_ATTR_IFINDEX, wdev->netdev->ifindex) ||
nla_put_u64_64bit(msg, NL80211_ATTR_WDEV, wdev_id(wdev),
- NL80211_ATTR_PAD))
+ NL80211_ATTR_PAD) ||
+ (wdev->valid_links &&
+ nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID, link_id)))
goto out;
genlmsg_end(msg, hdr);
@@ -19711,7 +19800,9 @@
params->action) ||
nla_put(msg, NL80211_ATTR_BSSID, ETH_ALEN, params->bssid) ||
nla_put(msg, NL80211_ATTR_SSID, params->ssid.ssid_len,
- params->ssid.ssid))
+ params->ssid.ssid) ||
+ (!is_zero_ether_addr(params->mld_addr) &&
+ nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN, params->mld_addr)))
goto nla_put_failure;
genlmsg_end(msg, hdr);
@@ -19753,6 +19844,17 @@
nla_put(msg, NL80211_ATTR_IE, owe_info->ie_len, owe_info->ie))
goto nla_put_failure;
+ if (owe_info->assoc_link_id != -1) {
+ if (nla_put_u8(msg, NL80211_ATTR_MLO_LINK_ID,
+ owe_info->assoc_link_id))
+ goto nla_put_failure;
+
+ if (!is_zero_ether_addr(owe_info->peer_mld_addr) &&
+ nla_put(msg, NL80211_ATTR_MLD_ADDR, ETH_ALEN,
+ owe_info->peer_mld_addr))
+ goto nla_put_failure;
+ }
+
genlmsg_end(msg, hdr);
genlmsg_multicast_netns(&nl80211_fam, wiphy_net(&rdev->wiphy), msg, 0,
diff --git a/net/wireless/nl80211.h b/net/wireless/nl80211.h
index 855d540..0278d81 100644
--- a/net/wireless/nl80211.h
+++ b/net/wireless/nl80211.h
@@ -83,7 +83,8 @@
struct net_device *netdev,
struct cfg80211_roam_info *info, gfp_t gfp);
void nl80211_send_port_authorized(struct cfg80211_registered_device *rdev,
- struct net_device *netdev, const u8 *bssid);
+ struct net_device *netdev, const u8 *bssid,
+ const u8 *td_bitmap, u8 td_bitmap_len);
void nl80211_send_disconnected(struct cfg80211_registered_device *rdev,
struct net_device *netdev, u16 reason,
const u8 *ie, size_t ie_len, bool from_ap);
@@ -113,7 +114,7 @@
enum nl80211_radar_event event,
struct net_device *netdev, gfp_t gfp);
-void nl80211_send_ap_stopped(struct wireless_dev *wdev);
+void nl80211_send_ap_stopped(struct wireless_dev *wdev, unsigned int link_id);
void cfg80211_rdev_free_coalesce(struct cfg80211_registered_device *rdev);
diff --git a/net/wireless/sme.c b/net/wireless/sme.c
index 07f676a..a4f9e4d 100644
--- a/net/wireless/sme.c
+++ b/net/wireless/sme.c
@@ -723,6 +723,7 @@
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
const struct element *country_elem = NULL;
+ const struct element *ssid;
const u8 *country_data;
u8 country_datalen;
#ifdef CONFIG_CFG80211_WEXT
@@ -882,6 +883,22 @@
country_data, country_datalen);
kfree(country_data);
+ if (!wdev->u.client.ssid_len) {
+ rcu_read_lock();
+ for_each_valid_link(cr, link) {
+ ssid = ieee80211_bss_get_elem(cr->links[link].bss,
+ WLAN_EID_SSID);
+
+ if (!ssid || !ssid->datalen)
+ continue;
+
+ memcpy(wdev->u.client.ssid, ssid->data, ssid->datalen);
+ wdev->u.client.ssid_len = ssid->datalen;
+ break;
+ }
+ rcu_read_unlock();
+ }
+
return;
out:
for_each_valid_link(cr, link)
@@ -1250,7 +1267,8 @@
}
EXPORT_SYMBOL(cfg80211_roamed);
-void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid)
+void __cfg80211_port_authorized(struct wireless_dev *wdev, const u8 *bssid,
+ const u8 *td_bitmap, u8 td_bitmap_len)
{
ASSERT_WDEV_LOCK(wdev);
@@ -1263,11 +1281,11 @@
return;
nl80211_send_port_authorized(wiphy_to_rdev(wdev->wiphy), wdev->netdev,
- bssid);
+ bssid, td_bitmap, td_bitmap_len);
}
void cfg80211_port_authorized(struct net_device *dev, const u8 *bssid,
- gfp_t gfp)
+ const u8 *td_bitmap, u8 td_bitmap_len, gfp_t gfp)
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
@@ -1277,12 +1295,15 @@
if (WARN_ON(!bssid))
return;
- ev = kzalloc(sizeof(*ev), gfp);
+ ev = kzalloc(sizeof(*ev) + td_bitmap_len, gfp);
if (!ev)
return;
ev->type = EVENT_PORT_AUTHORIZED;
memcpy(ev->pa.bssid, bssid, ETH_ALEN);
+ ev->pa.td_bitmap = ((u8 *)ev) + sizeof(*ev);
+ ev->pa.td_bitmap_len = td_bitmap_len;
+ memcpy((void *)ev->pa.td_bitmap, td_bitmap, td_bitmap_len);
/*
* Use the wdev event list so that if there are pending
diff --git a/net/wireless/trace.h b/net/wireless/trace.h
index a405c3e..ca7474ee 100644
--- a/net/wireless/trace.h
+++ b/net/wireless/trace.h
@@ -19,8 +19,6 @@
else \
eth_zero_addr(__entry->entry_mac); \
} while (0)
-#define MAC_PR_FMT "%pM"
-#define MAC_PR_ARG(entry_mac) (__entry->entry_mac)
#define MAXNAME 32
#define WIPHY_ENTRY __array(char, wiphy_name, 32)
@@ -454,10 +452,10 @@
__entry->pairwise = pairwise;
),
TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
- "key_index: %u, pairwise: %s, mac addr: " MAC_PR_FMT,
+ "key_index: %u, pairwise: %s, mac addr: %pM",
WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
__entry->key_index, BOOL_TO_STR(__entry->pairwise),
- MAC_PR_ARG(mac_addr))
+ __entry->mac_addr)
);
DEFINE_EVENT(key_handle, rdev_get_key,
@@ -496,10 +494,10 @@
),
TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, "
"key_index: %u, mode: %u, pairwise: %s, "
- "mac addr: " MAC_PR_FMT,
+ "mac addr: %pM",
WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
__entry->key_index, __entry->mode,
- BOOL_TO_STR(__entry->pairwise), MAC_PR_ARG(mac_addr))
+ BOOL_TO_STR(__entry->pairwise), __entry->mac_addr)
);
TRACE_EVENT(rdev_set_default_key,
@@ -813,11 +811,11 @@
__entry->opmode_notif_used =
params->link_sta_params.opmode_notif_used;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
", station flags mask: %u, station flags set: %u, "
"station modify mask: %u, listen interval: %d, aid: %u, "
"plink action: %u, plink state: %u, uapsd queues: %u, vlan:%s",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac),
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
__entry->sta_flags_mask, __entry->sta_flags_set,
__entry->sta_modify_mask, __entry->listen_interval,
__entry->aid, __entry->plink_action, __entry->plink_state,
@@ -849,8 +847,8 @@
NETDEV_ASSIGN;
MAC_ASSIGN(sta_mac, mac);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", mac: %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac)
);
DECLARE_EVENT_CLASS(station_del,
@@ -871,9 +869,9 @@
__entry->subtype = params->subtype;
__entry->reason_code = params->reason_code;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
", subtype: %u, reason_code: %u",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac),
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
__entry->subtype, __entry->reason_code)
);
@@ -909,8 +907,8 @@
MAC_ASSIGN(sta_mac, mac);
__entry->idx = _idx;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT ", idx: %d",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(sta_mac),
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM, idx: %d",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->sta_mac,
__entry->idx)
);
@@ -947,9 +945,9 @@
MAC_ASSIGN(dst, dst);
MAC_ASSIGN(next_hop, next_hop);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT ", next hop: " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dst),
- MAC_PR_ARG(next_hop))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM, next hop: %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dst,
+ __entry->next_hop)
);
DEFINE_EVENT(mpath_evt, rdev_add_mpath,
@@ -988,10 +986,9 @@
MAC_ASSIGN(next_hop, next_hop);
__entry->idx = _idx;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: "
- MAC_PR_FMT ", next hop: " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst),
- MAC_PR_ARG(next_hop))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, next hop: %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst,
+ __entry->next_hop)
);
TRACE_EVENT(rdev_get_mpp,
@@ -1010,9 +1007,9 @@
MAC_ASSIGN(dst, dst);
MAC_ASSIGN(mpp, mpp);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: " MAC_PR_FMT
- ", mpp: " MAC_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG,
- MAC_PR_ARG(dst), MAC_PR_ARG(mpp))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", destination: %pM"
+ ", mpp: %pM", WIPHY_PR_ARG, NETDEV_PR_ARG,
+ __entry->dst, __entry->mpp)
);
TRACE_EVENT(rdev_dump_mpp,
@@ -1033,10 +1030,9 @@
MAC_ASSIGN(mpp, mpp);
__entry->idx = _idx;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: "
- MAC_PR_FMT ", mpp: " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, MAC_PR_ARG(dst),
- MAC_PR_ARG(mpp))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", index: %d, destination: %pM, mpp: %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->idx, __entry->dst,
+ __entry->mpp)
);
TRACE_EVENT(rdev_return_int_mpath_info,
@@ -1243,9 +1239,9 @@
eth_zero_addr(__entry->bssid);
__entry->auth_type = req->auth_type;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: " MAC_PR_FMT,
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", auth type: %d, bssid: %pM",
WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->auth_type,
- MAC_PR_ARG(bssid))
+ __entry->bssid)
);
TRACE_EVENT(rdev_assoc,
@@ -1294,10 +1290,10 @@
memcpy(__get_dynamic_array(fils_nonces),
req->fils_nonces, 2 * FILS_NONCE_LEN);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
- ", previous bssid: " MAC_PR_FMT ", use mfp: %s, flags: %u",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid),
- MAC_PR_ARG(prev_bssid), BOOL_TO_STR(__entry->use_mfp),
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
+ ", previous bssid: %pM, use mfp: %s, flags: %u",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
+ __entry->prev_bssid, BOOL_TO_STR(__entry->use_mfp),
__entry->flags)
);
@@ -1317,8 +1313,8 @@
MAC_ASSIGN(bssid, req->bssid);
__entry->reason_code = req->reason_code;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", reason: %u",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid),
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, reason: %u",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
__entry->reason_code)
);
@@ -1340,9 +1336,9 @@
__entry->reason_code = req->reason_code;
__entry->local_state_change = req->local_state_change;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
", reason: %u, local state change: %s",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid),
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
__entry->reason_code,
BOOL_TO_STR(__entry->local_state_change))
);
@@ -1413,12 +1409,12 @@
__entry->flags = sme->flags;
MAC_ASSIGN(prev_bssid, sme->prev_bssid);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
", ssid: %s, auth type: %d, privacy: %s, wpa versions: %u, "
- "flags: %u, previous bssid: " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid,
+ "flags: %u, previous bssid: %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid,
__entry->auth_type, BOOL_TO_STR(__entry->privacy),
- __entry->wpa_versions, __entry->flags, MAC_PR_ARG(prev_bssid))
+ __entry->wpa_versions, __entry->flags, __entry->prev_bssid)
);
TRACE_EVENT(rdev_update_connect_params,
@@ -1542,8 +1538,8 @@
memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1);
memcpy(__entry->ssid, params->ssid, params->ssid_len);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", ssid: %s",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid), __entry->ssid)
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM, ssid: %s",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid, __entry->ssid)
);
TRACE_EVENT(rdev_join_ocb,
@@ -1664,9 +1660,9 @@
__entry->link_id = link_id;
MAC_ASSIGN(peer, peer);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: " MAC_PR_FMT,
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: %pM",
WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id,
- MAC_PR_ARG(peer))
+ __entry->peer)
);
TRACE_EVENT(rdev_update_mgmt_frame_registrations,
@@ -1810,10 +1806,10 @@
__entry->initiator = initiator;
memcpy(__get_dynamic_array(buf), buf, len);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", action_code: %u, "
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, action_code: %u, "
"dialog_token: %u, status_code: %u, peer_capability: %u "
"initiator: %s buf: %#.2x ",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer),
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
__entry->action_code, __entry->dialog_token,
__entry->status_code, __entry->peer_capability,
BOOL_TO_STR(__entry->initiator),
@@ -1893,8 +1889,8 @@
MAC_ASSIGN(peer, peer);
__entry->oper = oper;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", oper: %d",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper)
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, oper: %d",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper)
);
DECLARE_EVENT_CLASS(rdev_pmksa,
@@ -1911,8 +1907,8 @@
NETDEV_ASSIGN;
MAC_ASSIGN(bssid, pmksa->bssid);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(bssid))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid)
);
TRACE_EVENT(rdev_probe_client,
@@ -1929,8 +1925,8 @@
NETDEV_ASSIGN;
MAC_ASSIGN(peer, peer);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer)
);
DEFINE_EVENT(rdev_pmksa, rdev_set_pmksa,
@@ -2051,9 +2047,9 @@
__entry->unencrypted = unencrypted;
__entry->link_id = link_id;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ","
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM,"
" proto: 0x%x, unencrypted: %s, link: %d",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest),
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest,
be16_to_cpu(__entry->proto),
BOOL_TO_STR(__entry->unencrypted),
__entry->link_id)
@@ -2392,8 +2388,8 @@
__entry->user_prio = user_prio;
__entry->admitted_time = admitted_time;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d, UP %d, time %d",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer),
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d, UP %d, time %d",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
__entry->tsid, __entry->user_prio, __entry->admitted_time)
);
@@ -2413,8 +2409,8 @@
MAC_ASSIGN(peer, peer);
__entry->tsid = tsid;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ", TSID %d",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tsid)
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM, TSID %d",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tsid)
);
TRACE_EVENT(rdev_tdls_channel_switch,
@@ -2435,9 +2431,9 @@
MAC_ASSIGN(addr, addr);
CHAN_DEF_ASSIGN(chandef);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
" oper class %d, " CHAN_DEF_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr),
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr,
__entry->oper_class, CHAN_DEF_PR_ARG)
);
@@ -2455,8 +2451,8 @@
NETDEV_ASSIGN;
MAC_ASSIGN(addr, addr);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(addr))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->addr)
);
TRACE_EVENT(rdev_set_pmk,
@@ -2488,9 +2484,9 @@
pmk_conf->pmk_r0_name ? WLAN_PMK_NAME_LEN : 0);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM"
"pmk_len=%u, pmk: %s pmk_r0_name: %s", WIPHY_PR_ARG,
- NETDEV_PR_ARG, MAC_PR_ARG(aa), __entry->pmk_len,
+ NETDEV_PR_ARG, __entry->aa, __entry->pmk_len,
__print_array(__get_dynamic_array(pmk),
__get_dynamic_array_len(pmk), 1),
__entry->pmk_r0_name_len ?
@@ -2515,8 +2511,8 @@
MAC_ASSIGN(aa, aa);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(aa))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->aa)
);
TRACE_EVENT(rdev_external_auth,
@@ -2528,6 +2524,7 @@
MAC_ENTRY(bssid)
__array(u8, ssid, IEEE80211_MAX_SSID_LEN + 1)
__field(u16, status)
+ MAC_ENTRY(mld_addr)
),
TP_fast_assign(WIPHY_ASSIGN;
NETDEV_ASSIGN;
@@ -2536,10 +2533,12 @@
memcpy(__entry->ssid, params->ssid.ssid,
params->ssid.ssid_len);
__entry->status = params->status;
+ MAC_ASSIGN(mld_addr, params->mld_addr);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: " MAC_PR_FMT
- ", ssid: %s, status: %u", WIPHY_PR_ARG, NETDEV_PR_ARG,
- __entry->bssid, __entry->ssid, __entry->status)
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", bssid: %pM"
+ ", ssid: %s, status: %u, mld_addr: %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->bssid,
+ __entry->ssid, __entry->status, __entry->mld_addr)
);
TRACE_EVENT(rdev_start_radar_detection,
@@ -2720,8 +2719,8 @@
__entry->status = owe_info->status;
memcpy(__get_dynamic_array(ie),
owe_info->ie, owe_info->ie_len);),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT
- " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer),
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM"
+ " status %d", WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
__entry->status)
);
@@ -2739,8 +2738,8 @@
NETDEV_ASSIGN;
MAC_ASSIGN(dest, dest);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->dest)
);
TRACE_EVENT(rdev_set_tid_config,
@@ -2757,8 +2756,8 @@
NETDEV_ASSIGN;
MAC_ASSIGN(peer, tid_conf->peer);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer)
);
TRACE_EVENT(rdev_reset_tid_config,
@@ -2777,8 +2776,8 @@
MAC_ASSIGN(peer, peer);
__entry->tids = tids;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", tids: 0x%x",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->tids)
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, tids: 0x%x",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->tids)
);
TRACE_EVENT(rdev_set_sar_specs,
@@ -2881,8 +2880,8 @@
NETDEV_ASSIGN;
MAC_ASSIGN(macaddr, macaddr);
),
- TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT,
- NETDEV_PR_ARG, MAC_PR_ARG(macaddr))
+ TP_printk(NETDEV_PR_FMT ", mac: %pM",
+ NETDEV_PR_ARG, __entry->macaddr)
);
DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_notify_new_peer_candidate,
@@ -2920,8 +2919,8 @@
MAC_ASSIGN(ap_addr,
data->ap_mld_addr ?: data->links[0].bss->bssid);
),
- TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT,
- NETDEV_PR_ARG, MAC_PR_ARG(ap_addr))
+ TP_printk(NETDEV_PR_FMT ", %pM",
+ NETDEV_PR_ARG, __entry->ap_addr)
);
DECLARE_EVENT_CLASS(netdev_frame_event,
@@ -2981,8 +2980,8 @@
NETDEV_ASSIGN;
MAC_ASSIGN(mac, mac)
),
- TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT,
- NETDEV_PR_ARG, MAC_PR_ARG(mac))
+ TP_printk(NETDEV_PR_FMT ", mac: %pM",
+ NETDEV_PR_ARG, __entry->mac)
);
DEFINE_EVENT(netdev_mac_evt, cfg80211_send_auth_timeout,
@@ -3004,8 +3003,8 @@
MAC_ASSIGN(ap_addr, data->ap_mld_addr ?: data->bss[0]->bssid);
__entry->timeout = data->timeout;
),
- TP_printk(NETDEV_PR_FMT ", mac: " MAC_PR_FMT ", timeout: %d",
- NETDEV_PR_ARG, MAC_PR_ARG(ap_addr), __entry->timeout)
+ TP_printk(NETDEV_PR_FMT ", mac: %pM, timeout: %d",
+ NETDEV_PR_ARG, __entry->ap_addr, __entry->timeout)
);
TRACE_EVENT(cfg80211_michael_mic_failure,
@@ -3027,8 +3026,8 @@
if (tsc)
memcpy(__entry->tsc, tsc, 6);
),
- TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT ", key type: %d, key id: %d, tsc: %pm",
- NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->key_type,
+ TP_printk(NETDEV_PR_FMT ", %pM, key type: %d, key id: %d, tsc: %pm",
+ NETDEV_PR_ARG, __entry->addr, __entry->key_type,
__entry->key_id, __entry->tsc)
);
@@ -3104,8 +3103,8 @@
MAC_ASSIGN(mac_addr, mac_addr);
SINFO_ASSIGN;
),
- TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT,
- NETDEV_PR_ARG, MAC_PR_ARG(mac_addr))
+ TP_printk(NETDEV_PR_FMT ", %pM",
+ NETDEV_PR_ARG, __entry->mac_addr)
);
DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_del_sta,
@@ -3182,8 +3181,8 @@
__entry->proto = be16_to_cpu(skb->protocol);
__entry->unencrypted = unencrypted;
),
- TP_printk(NETDEV_PR_FMT ", len=%d, " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s",
- NETDEV_PR_ARG, __entry->len, MAC_PR_ARG(from),
+ TP_printk(NETDEV_PR_FMT ", len=%d, %pM, proto: 0x%x, unencrypted: %s",
+ NETDEV_PR_ARG, __entry->len, __entry->from,
__entry->proto, BOOL_TO_STR(__entry->unencrypted))
);
@@ -3245,39 +3244,47 @@
TRACE_EVENT(cfg80211_ch_switch_notify,
TP_PROTO(struct net_device *netdev,
struct cfg80211_chan_def *chandef,
- unsigned int link_id),
- TP_ARGS(netdev, chandef, link_id),
+ unsigned int link_id,
+ u16 punct_bitmap),
+ TP_ARGS(netdev, chandef, link_id, punct_bitmap),
TP_STRUCT__entry(
NETDEV_ENTRY
CHAN_DEF_ENTRY
__field(unsigned int, link_id)
+ __field(u16, punct_bitmap)
),
TP_fast_assign(
NETDEV_ASSIGN;
CHAN_DEF_ASSIGN(chandef);
__entry->link_id = link_id;
+ __entry->punct_bitmap = punct_bitmap;
),
- TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d",
- NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id)
+ TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u",
+ NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id,
+ __entry->punct_bitmap)
);
TRACE_EVENT(cfg80211_ch_switch_started_notify,
TP_PROTO(struct net_device *netdev,
struct cfg80211_chan_def *chandef,
- unsigned int link_id),
- TP_ARGS(netdev, chandef, link_id),
+ unsigned int link_id,
+ u16 punct_bitmap),
+ TP_ARGS(netdev, chandef, link_id, punct_bitmap),
TP_STRUCT__entry(
NETDEV_ENTRY
CHAN_DEF_ENTRY
__field(unsigned int, link_id)
+ __field(u16, punct_bitmap)
),
TP_fast_assign(
NETDEV_ASSIGN;
CHAN_DEF_ASSIGN(chandef);
__entry->link_id = link_id;
+ __entry->punct_bitmap = punct_bitmap;
),
- TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d",
- NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id)
+ TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d, punct_bitmap:%u",
+ NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id,
+ __entry->punct_bitmap)
);
TRACE_EVENT(cfg80211_radar_event,
@@ -3324,7 +3331,7 @@
NETDEV_ASSIGN;
MAC_ASSIGN(addr, addr);
),
- TP_printk(NETDEV_PR_FMT ", " MAC_PR_FMT, NETDEV_PR_ARG, MAC_PR_ARG(addr))
+ TP_printk(NETDEV_PR_FMT ", %pM", NETDEV_PR_ARG, __entry->addr)
);
DEFINE_EVENT(cfg80211_rx_evt, cfg80211_rx_spurious_frame,
@@ -3351,8 +3358,8 @@
MAC_ASSIGN(bssid, bssid);
CHAN_ASSIGN(channel);
),
- TP_printk(NETDEV_PR_FMT ", bssid: " MAC_PR_FMT ", " CHAN_PR_FMT,
- NETDEV_PR_ARG, MAC_PR_ARG(bssid), CHAN_PR_ARG)
+ TP_printk(NETDEV_PR_FMT ", bssid: %pM, " CHAN_PR_FMT,
+ NETDEV_PR_ARG, __entry->bssid, CHAN_PR_ARG)
);
TRACE_EVENT(cfg80211_probe_status,
@@ -3371,8 +3378,8 @@
__entry->cookie = cookie;
__entry->acked = acked;
),
- TP_printk(NETDEV_PR_FMT " addr:" MAC_PR_FMT ", cookie: %llu, acked: %s",
- NETDEV_PR_ARG, MAC_PR_ARG(addr), __entry->cookie,
+ TP_printk(NETDEV_PR_FMT " addr:%pM, cookie: %llu, acked: %s",
+ NETDEV_PR_ARG, __entry->addr, __entry->cookie,
BOOL_TO_STR(__entry->acked))
);
@@ -3389,8 +3396,8 @@
MAC_ASSIGN(peer, peer);
__entry->num_packets = num_packets;
),
- TP_printk(NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", num of lost packets: %u",
- NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->num_packets)
+ TP_printk(NETDEV_PR_FMT ", peer: %pM, num of lost packets: %u",
+ NETDEV_PR_ARG, __entry->peer, __entry->num_packets)
);
DEFINE_EVENT(cfg80211_netdev_mac_evt, cfg80211_gtk_rekey_notify,
@@ -3414,8 +3421,8 @@
MAC_ASSIGN(bssid, bssid);
__entry->preauth = preauth;
),
- TP_printk(NETDEV_PR_FMT ", index:%d, bssid: " MAC_PR_FMT ", pre auth: %s",
- NETDEV_PR_ARG, __entry->index, MAC_PR_ARG(bssid),
+ TP_printk(NETDEV_PR_FMT ", index:%d, bssid: %pM, pre auth: %s",
+ NETDEV_PR_ARG, __entry->index, __entry->bssid,
BOOL_TO_STR(__entry->preauth))
);
@@ -3455,8 +3462,8 @@
__entry->oper = oper;
__entry->reason_code = reason_code;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT ", oper: %d, reason_code %u",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer), __entry->oper,
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM, oper: %d, reason_code %u",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer, __entry->oper,
__entry->reason_code)
);
@@ -3494,10 +3501,10 @@
MAC_ASSIGN(tsf_bssid, info->tsf_bssid);
}
),
- TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: " MAC_PR_FMT,
+ TP_printk("aborted: %s, scan start (TSF): %llu, tsf_bssid: %pM",
BOOL_TO_STR(__entry->aborted),
(unsigned long long)__entry->scan_start_tsf,
- MAC_PR_ARG(tsf_bssid))
+ __entry->tsf_bssid)
);
DECLARE_EVENT_CLASS(wiphy_id_evt,
@@ -3546,9 +3553,9 @@
__entry->bss_type = bss_type;
__entry->privacy = privacy;
),
- TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", " MAC_PR_FMT
+ TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT ", %pM"
", buf: %#.2x, bss_type: %d, privacy: %d",
- WIPHY_PR_ARG, CHAN_PR_ARG, MAC_PR_ARG(bssid),
+ WIPHY_PR_ARG, CHAN_PR_ARG, __entry->bssid,
((u8 *)__get_dynamic_array(ssid))[0], __entry->bss_type,
__entry->privacy)
);
@@ -3579,11 +3586,11 @@
MAC_ASSIGN(parent_bssid, data->parent_bssid);
),
TP_printk(WIPHY_PR_FMT ", " CHAN_PR_FMT
- "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: "
- MAC_PR_FMT, WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width,
+ "(scan_width: %d) signal: %d, tsb:%llu, detect_tsf:%llu, tsf_bssid: %pM",
+ WIPHY_PR_ARG, CHAN_PR_ARG, __entry->scan_width,
__entry->signal, (unsigned long long)__entry->ts_boottime,
(unsigned long long)__entry->parent_tsf,
- MAC_PR_ARG(parent_bssid))
+ __entry->parent_bssid)
);
DECLARE_EVENT_CLASS(cfg80211_bss_evt,
@@ -3597,7 +3604,7 @@
MAC_ASSIGN(bssid, pub->bssid);
CHAN_ASSIGN(pub->channel);
),
- TP_printk(MAC_PR_FMT ", " CHAN_PR_FMT, MAC_PR_ARG(bssid), CHAN_PR_ARG)
+ TP_printk("%pM, " CHAN_PR_FMT, __entry->bssid, CHAN_PR_ARG)
);
DEFINE_EVENT(cfg80211_bss_evt, cfg80211_return_bss,
@@ -3689,8 +3696,8 @@
memcpy(__get_dynamic_array(ric_ies), ft_event->ric_ies,
ft_event->ric_ies_len);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(target_ap))
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", target_ap: %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->target_ap)
);
TRACE_EVENT(cfg80211_stop_iface,
@@ -3724,10 +3731,10 @@
__entry->cookie = cookie;
MAC_ASSIGN(addr, addr);
),
- TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, " MAC_PR_FMT,
+ TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", cookie:%lld, %pM",
WIPHY_PR_ARG, WDEV_PR_ARG,
(unsigned long long)__entry->cookie,
- MAC_PR_ARG(addr))
+ __entry->addr)
);
TRACE_EVENT(cfg80211_pmsr_complete,
@@ -3749,20 +3756,30 @@
);
TRACE_EVENT(cfg80211_update_owe_info_event,
- TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
- struct cfg80211_update_owe_info *owe_info),
- TP_ARGS(wiphy, netdev, owe_info),
- TP_STRUCT__entry(WIPHY_ENTRY
- NETDEV_ENTRY
- MAC_ENTRY(peer)
- __dynamic_array(u8, ie, owe_info->ie_len)),
- TP_fast_assign(WIPHY_ASSIGN;
- NETDEV_ASSIGN;
- MAC_ASSIGN(peer, owe_info->peer);
- memcpy(__get_dynamic_array(ie), owe_info->ie,
- owe_info->ie_len);),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT,
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer))
+ TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
+ struct cfg80211_update_owe_info *owe_info),
+ TP_ARGS(wiphy, netdev, owe_info),
+ TP_STRUCT__entry(
+ WIPHY_ENTRY
+ NETDEV_ENTRY
+ MAC_ENTRY(peer)
+ __dynamic_array(u8, ie, owe_info->ie_len)
+ __field(int, assoc_link_id)
+ MAC_ENTRY(peer_mld_addr)
+ ),
+ TP_fast_assign(
+ WIPHY_ASSIGN;
+ NETDEV_ASSIGN;
+ MAC_ASSIGN(peer, owe_info->peer);
+ memcpy(__get_dynamic_array(ie), owe_info->ie,
+ owe_info->ie_len);
+ __entry->assoc_link_id = owe_info->assoc_link_id;
+ MAC_ASSIGN(peer_mld_addr, owe_info->peer_mld_addr);
+ ),
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: %pM,"
+ " assoc_link_id: %d, peer_mld_addr: %pM",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->peer,
+ __entry->assoc_link_id, __entry->peer_mld_addr)
);
TRACE_EVENT(cfg80211_bss_color_notify,
@@ -3800,8 +3817,8 @@
MAC_ASSIGN(ap_addr, ap_addr);
__entry->timeout = timeout;
),
- TP_printk(WDEV_PR_FMT ", " MAC_PR_FMT ", timeout: %u TUs",
- WDEV_PR_ARG, MAC_PR_ARG(ap_addr), __entry->timeout)
+ TP_printk(WDEV_PR_FMT ", %pM, timeout: %u TUs",
+ WDEV_PR_ARG, __entry->ap_addr, __entry->timeout)
);
DECLARE_EVENT_CLASS(link_station_add_mod,
@@ -3859,10 +3876,10 @@
memcpy(__get_dynamic_array(eht_capa), params->eht_capa,
params->eht_capa_len);
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT
- ", link mac: " MAC_PR_FMT ", link id: %u",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(mld_mac),
- MAC_PR_ARG(link_mac), __entry->link_id)
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
+ ", link mac: %pM, link id: %u",
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac,
+ __entry->link_mac, __entry->link_id)
);
DEFINE_EVENT(link_station_add_mod, rdev_add_link_station,
@@ -3895,9 +3912,9 @@
memcpy(__entry->mld_mac, params->mld_mac, 6);
__entry->link_id = params->link_id;
),
- TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: " MAC_PR_FMT
+ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", station mac: %pM"
", link id: %u",
- WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(mld_mac),
+ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->mld_mac,
__entry->link_id)
);
diff --git a/net/wireless/util.c b/net/wireless/util.c
index aee2c39..bac788f 100644
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -986,7 +986,9 @@
__cfg80211_leave(wiphy_to_rdev(wdev->wiphy), wdev);
break;
case EVENT_PORT_AUTHORIZED:
- __cfg80211_port_authorized(wdev, ev->pa.bssid);
+ __cfg80211_port_authorized(wdev, ev->pa.bssid,
+ ev->pa.td_bitmap,
+ ev->pa.td_bitmap_len);
break;
}
wdev_unlock(wdev);
diff --git a/tools/testing/selftests/filesystems/fuse/.gitignore b/tools/testing/selftests/filesystems/fuse/.gitignore
new file mode 100644
index 0000000..3ee9a27
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/.gitignore
@@ -0,0 +1,2 @@
+fuse_test
+*.raw
diff --git a/tools/testing/selftests/filesystems/fuse/Makefile b/tools/testing/selftests/filesystems/fuse/Makefile
new file mode 100644
index 0000000..261d760
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/Makefile
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: GPL-2.0
+CFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Werror -I../.. -I../../../../.. -I../../../../include
+LDLIBS := -lpthread -lelf
+TEST_GEN_PROGS := fuse_test fuse_daemon
+TEST_GEN_FILES := \
+ test_bpf.bpf \
+ fd_bpf.bpf \
+ fd.sh \
+
+EXTRA_CLEAN := *.bpf
+BPF_FLAGS = -Wall -Werror -O2 -g -emit-llvm \
+ -I ../../../../../include \
+ -idirafter /usr/lib/gcc/x86_64-linux-gnu/10/include \
+ -idirafter /usr/local/include \
+ -idirafter /usr/include/x86_64-linux-gnu \
+ -idirafter /usr/include \
+
+include ../../lib.mk
+
+# Put after include ../../lib.mk since that changes $(TEST_GEN_PROGS)
+# Otherwise you get multiple targets, this becomes the default, and it's a mess
+EXTRA_SOURCES := bpf_loader.c
+$(TEST_GEN_PROGS) : $(EXTRA_SOURCES)
+
+$(OUTPUT)/%.ir: %.c
+ clang $(BPF_FLAGS) -c $< -o $@
+
+$(OUTPUT)/%.bpf: $(OUTPUT)/%.ir
+ llc -march=bpf -filetype=obj -o $@ $<
+
+$(OUTPUT)/fd.sh: fd.txt
+ cp $< $@
+ chmod 755 $@
+
diff --git a/tools/testing/selftests/filesystems/fuse/OWNERS b/tools/testing/selftests/filesystems/fuse/OWNERS
new file mode 100644
index 0000000..5eb371e
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/OWNERS
@@ -0,0 +1,2 @@
+# include OWNERS from the authoritative android-mainline branch
+include kernel/common:android-mainline:/tools/testing/selftests/filesystems/incfs/OWNERS
diff --git a/tools/testing/selftests/filesystems/fuse/bpf_loader.c b/tools/testing/selftests/filesystems/fuse/bpf_loader.c
new file mode 100644
index 0000000..5bf26ea
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/bpf_loader.c
@@ -0,0 +1,791 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2021 Google LLC
+ */
+
+#include "test_fuse.h"
+
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <gelf.h>
+#include <libelf.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/xattr.h>
+
+#include <linux/unistd.h>
+
+#include <include/uapi/linux/fuse.h>
+#include <include/uapi/linux/bpf.h>
+
+struct _test_options test_options;
+
+struct s s(const char *s1)
+{
+ struct s s = {0};
+
+ if (!s1)
+ return s;
+
+ s.s = malloc(strlen(s1) + 1);
+ if (!s.s)
+ return s;
+
+ strcpy(s.s, s1);
+ return s;
+}
+
+struct s sn(const char *s1, const char *s2)
+{
+ struct s s = {0};
+
+ if (!s1)
+ return s;
+
+ s.s = malloc(s2 - s1 + 1);
+ if (!s.s)
+ return s;
+
+ strncpy(s.s, s1, s2 - s1);
+ s.s[s2 - s1] = 0;
+ return s;
+}
+
+int s_cmp(struct s s1, struct s s2)
+{
+ int result = -1;
+
+ if (!s1.s || !s2.s)
+ goto out;
+ result = strcmp(s1.s, s2.s);
+out:
+ free(s1.s);
+ free(s2.s);
+ return result;
+}
+
+struct s s_cat(struct s s1, struct s s2)
+{
+ struct s s = {0};
+
+ if (!s1.s || !s2.s)
+ goto out;
+
+ s.s = malloc(strlen(s1.s) + strlen(s2.s) + 1);
+ if (!s.s)
+ goto out;
+
+ strcpy(s.s, s1.s);
+ strcat(s.s, s2.s);
+out:
+ free(s1.s);
+ free(s2.s);
+ return s;
+}
+
+struct s s_splitleft(struct s s1, char c)
+{
+ struct s s = {0};
+ char *split;
+
+ if (!s1.s)
+ return s;
+
+ split = strchr(s1.s, c);
+ if (split)
+ s = sn(s1.s, split);
+
+ free(s1.s);
+ return s;
+}
+
+struct s s_splitright(struct s s1, char c)
+{
+ struct s s2 = {0};
+ char *split;
+
+ if (!s1.s)
+ return s2;
+
+ split = strchr(s1.s, c);
+ if (split)
+ s2 = s(split + 1);
+
+ free(s1.s);
+ return s2;
+}
+
+struct s s_word(struct s s1, char c, size_t n)
+{
+ while (n--)
+ s1 = s_splitright(s1, c);
+ return s_splitleft(s1, c);
+}
+
+struct s s_path(struct s s1, struct s s2)
+{
+ return s_cat(s_cat(s1, s("/")), s2);
+}
+
+struct s s_pathn(size_t n, struct s s1, ...)
+{
+ va_list argp;
+
+ va_start(argp, s1);
+ while (--n)
+ s1 = s_path(s1, va_arg(argp, struct s));
+ va_end(argp);
+ return s1;
+}
+
+int s_link(struct s src_pathname, struct s dst_pathname)
+{
+ int res;
+
+ if (src_pathname.s && dst_pathname.s) {
+ res = link(src_pathname.s, dst_pathname.s);
+ } else {
+ res = -1;
+ errno = ENOMEM;
+ }
+
+ free(src_pathname.s);
+ free(dst_pathname.s);
+ return res;
+}
+
+int s_symlink(struct s src_pathname, struct s dst_pathname)
+{
+ int res;
+
+ if (src_pathname.s && dst_pathname.s) {
+ res = symlink(src_pathname.s, dst_pathname.s);
+ } else {
+ res = -1;
+ errno = ENOMEM;
+ }
+
+ free(src_pathname.s);
+ free(dst_pathname.s);
+ return res;
+}
+
+
+int s_mkdir(struct s pathname, mode_t mode)
+{
+ int res;
+
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ res = mkdir(pathname.s, mode);
+ free(pathname.s);
+ return res;
+}
+
+int s_rmdir(struct s pathname)
+{
+ int res;
+
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ res = rmdir(pathname.s);
+ free(pathname.s);
+ return res;
+}
+
+int s_unlink(struct s pathname)
+{
+ int res;
+
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ res = unlink(pathname.s);
+ free(pathname.s);
+ return res;
+}
+
+int s_open(struct s pathname, int flags, ...)
+{
+ va_list ap;
+ int res;
+
+ va_start(ap, flags);
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ if (flags & (O_CREAT | O_TMPFILE))
+ res = open(pathname.s, flags, va_arg(ap, mode_t));
+ else
+ res = open(pathname.s, flags);
+
+ free(pathname.s);
+ va_end(ap);
+ return res;
+}
+
+int s_openat(int dirfd, struct s pathname, int flags, ...)
+{
+ va_list ap;
+ int res;
+
+ va_start(ap, flags);
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ if (flags & (O_CREAT | O_TMPFILE))
+ res = openat(dirfd, pathname.s, flags, va_arg(ap, mode_t));
+ else
+ res = openat(dirfd, pathname.s, flags);
+
+ free(pathname.s);
+ va_end(ap);
+ return res;
+}
+
+int s_creat(struct s pathname, mode_t mode)
+{
+ int res;
+
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ res = open(pathname.s, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, mode);
+ free(pathname.s);
+ return res;
+}
+
+int s_mkfifo(struct s pathname, mode_t mode)
+{
+ int res;
+
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ res = mknod(pathname.s, S_IFIFO | mode, 0);
+ free(pathname.s);
+ return res;
+}
+
+int s_stat(struct s pathname, struct stat *st)
+{
+ int res;
+
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ res = stat(pathname.s, st);
+ free(pathname.s);
+ return res;
+}
+
+int s_statfs(struct s pathname, struct statfs *st)
+{
+ int res;
+
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ res = statfs(pathname.s, st);
+ free(pathname.s);
+ return res;
+}
+
+DIR *s_opendir(struct s pathname)
+{
+ DIR *res;
+
+ res = opendir(pathname.s);
+ free(pathname.s);
+ return res;
+}
+
+int s_getxattr(struct s pathname, const char name[], void *value, size_t size,
+ ssize_t *ret_size)
+{
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ *ret_size = getxattr(pathname.s, name, value, size);
+ free(pathname.s);
+ return *ret_size >= 0 ? 0 : -1;
+}
+
+int s_listxattr(struct s pathname, void *list, size_t size, ssize_t *ret_size)
+{
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ *ret_size = listxattr(pathname.s, list, size);
+ free(pathname.s);
+ return *ret_size >= 0 ? 0 : -1;
+}
+
+int s_setxattr(struct s pathname, const char name[], const void *value, size_t size, int flags)
+{
+ int res;
+
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ res = setxattr(pathname.s, name, value, size, flags);
+ free(pathname.s);
+ return res;
+}
+
+int s_removexattr(struct s pathname, const char name[])
+{
+ int res;
+
+ if (!pathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ res = removexattr(pathname.s, name);
+ free(pathname.s);
+ return res;
+}
+
+int s_rename(struct s oldpathname, struct s newpathname)
+{
+ int res;
+
+ if (!oldpathname.s || !newpathname.s) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ res = rename(oldpathname.s, newpathname.s);
+ free(oldpathname.s);
+ free(newpathname.s);
+ return res;
+}
+
+int s_fuse_attr(struct s pathname, struct fuse_attr *fuse_attr_out)
+{
+
+ struct stat st;
+ int result = TEST_FAILURE;
+
+ TESTSYSCALL(s_stat(pathname, &st));
+
+ fuse_attr_out->ino = st.st_ino;
+ fuse_attr_out->mode = st.st_mode;
+ fuse_attr_out->nlink = st.st_nlink;
+ fuse_attr_out->uid = st.st_uid;
+ fuse_attr_out->gid = st.st_gid;
+ fuse_attr_out->rdev = st.st_rdev;
+ fuse_attr_out->size = st.st_size;
+ fuse_attr_out->blksize = st.st_blksize;
+ fuse_attr_out->blocks = st.st_blocks;
+ fuse_attr_out->atime = st.st_atime;
+ fuse_attr_out->mtime = st.st_mtime;
+ fuse_attr_out->ctime = st.st_ctime;
+ fuse_attr_out->atimensec = UINT32_MAX;
+ fuse_attr_out->mtimensec = UINT32_MAX;
+ fuse_attr_out->ctimensec = UINT32_MAX;
+
+ result = TEST_SUCCESS;
+out:
+ return result;
+}
+
+struct s tracing_folder(void)
+{
+ struct s trace = {0};
+ FILE *mounts = NULL;
+ char *line = NULL;
+ size_t size = 0;
+
+ TEST(mounts = fopen("/proc/mounts", "re"), mounts);
+ while (getline(&line, &size, mounts) != -1) {
+ if (!s_cmp(s_word(sn(line, line + size), ' ', 2),
+ s("tracefs"))) {
+ trace = s_word(sn(line, line + size), ' ', 1);
+ break;
+ }
+
+ if (!s_cmp(s_word(sn(line, line + size), ' ', 2), s("debugfs")))
+ trace = s_path(s_word(sn(line, line + size), ' ', 1),
+ s("tracing"));
+ }
+
+out:
+ free(line);
+ fclose(mounts);
+ return trace;
+}
+
+int tracing_on(void)
+{
+ int result = TEST_FAILURE;
+ int tracing_on = -1;
+
+ TEST(tracing_on = s_open(s_path(tracing_folder(), s("tracing_on")),
+ O_WRONLY | O_CLOEXEC),
+ tracing_on != -1);
+ TESTEQUAL(write(tracing_on, "1", 1), 1);
+ result = TEST_SUCCESS;
+out:
+ close(tracing_on);
+ return result;
+}
+
+char *concat_file_name(const char *dir, const char *file)
+{
+ char full_name[FILENAME_MAX] = "";
+
+ if (snprintf(full_name, ARRAY_SIZE(full_name), "%s/%s", dir, file) < 0)
+ return NULL;
+ return strdup(full_name);
+}
+
+char *setup_mount_dir(const char *name)
+{
+ struct stat st;
+ char *current_dir = getcwd(NULL, 0);
+ char *mount_dir = concat_file_name(current_dir, name);
+
+ free(current_dir);
+ if (stat(mount_dir, &st) == 0) {
+ if (S_ISDIR(st.st_mode))
+ return mount_dir;
+
+ ksft_print_msg("%s is a file, not a dir.\n", mount_dir);
+ return NULL;
+ }
+
+ if (mkdir(mount_dir, 0777)) {
+ ksft_print_msg("Can't create mount dir.");
+ return NULL;
+ }
+
+ return mount_dir;
+}
+
+int delete_dir_tree(const char *dir_path, bool remove_root)
+{
+ DIR *dir = NULL;
+ struct dirent *dp;
+ int result = 0;
+
+ dir = opendir(dir_path);
+ if (!dir) {
+ result = -errno;
+ goto out;
+ }
+
+ while ((dp = readdir(dir))) {
+ char *full_path;
+
+ if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, ".."))
+ continue;
+
+ full_path = concat_file_name(dir_path, dp->d_name);
+ if (dp->d_type == DT_DIR)
+ result = delete_dir_tree(full_path, true);
+ else
+ result = unlink(full_path);
+ free(full_path);
+ if (result)
+ goto out;
+ }
+
+out:
+ if (dir)
+ closedir(dir);
+ if (!result && remove_root)
+ rmdir(dir_path);
+ return result;
+}
+
+static int mount_fuse_maybe_init(const char *mount_dir, int bpf_fd, int dir_fd,
+ int *fuse_dev_ptr, bool init)
+{
+ int result = TEST_FAILURE;
+ int fuse_dev = -1;
+ char options[FILENAME_MAX];
+ uint8_t bytes_in[FUSE_MIN_READ_BUFFER];
+ uint8_t bytes_out[FUSE_MIN_READ_BUFFER];
+
+ DECL_FUSE_IN(init);
+
+ TEST(fuse_dev = open("/dev/fuse", O_RDWR | O_CLOEXEC), fuse_dev != -1);
+ snprintf(options, FILENAME_MAX, "fd=%d,user_id=0,group_id=0,rootmode=0040000",
+ fuse_dev);
+ if (bpf_fd != -1)
+ snprintf(options + strlen(options),
+ sizeof(options) - strlen(options),
+ ",root_bpf=%d", bpf_fd);
+ if (dir_fd != -1)
+ snprintf(options + strlen(options),
+ sizeof(options) - strlen(options),
+ ",root_dir=%d", dir_fd);
+ TESTSYSCALL(mount("ABC", mount_dir, "fuse", 0, options));
+
+ if (init) {
+ TESTFUSEIN(FUSE_INIT, init_in);
+ TESTEQUAL(init_in->major, FUSE_KERNEL_VERSION);
+ TESTEQUAL(init_in->minor, FUSE_KERNEL_MINOR_VERSION);
+ TESTFUSEOUT1(fuse_init_out, ((struct fuse_init_out) {
+ .major = FUSE_KERNEL_VERSION,
+ .minor = FUSE_KERNEL_MINOR_VERSION,
+ .max_readahead = 4096,
+ .flags = 0,
+ .max_background = 0,
+ .congestion_threshold = 0,
+ .max_write = 4096,
+ .time_gran = 1000,
+ .max_pages = 12,
+ .map_alignment = 4096,
+ }));
+ }
+
+ *fuse_dev_ptr = fuse_dev;
+ fuse_dev = -1;
+ result = TEST_SUCCESS;
+out:
+ close(fuse_dev);
+ return result;
+}
+
+int mount_fuse(const char *mount_dir, int bpf_fd, int dir_fd, int *fuse_dev_ptr)
+{
+ return mount_fuse_maybe_init(mount_dir, bpf_fd, dir_fd, fuse_dev_ptr,
+ true);
+}
+
+int mount_fuse_no_init(const char *mount_dir, int bpf_fd, int dir_fd,
+ int *fuse_dev_ptr)
+{
+ return mount_fuse_maybe_init(mount_dir, bpf_fd, dir_fd, fuse_dev_ptr,
+ false);
+}
+
+struct fuse_bpf_map {
+ unsigned int map_type;
+ size_t key_size;
+ size_t value_size;
+ unsigned int max_entries;
+};
+
+static int install_maps(Elf_Data *maps, int maps_index, Elf *elf,
+ Elf_Data *symbols, int symbol_index,
+ struct map_relocation **mr, size_t *map_count)
+{
+ int result = TEST_FAILURE;
+ int i;
+ GElf_Sym symbol;
+
+ TESTNE((void *)symbols, NULL);
+
+ for (i = 0; i < symbols->d_size / sizeof(symbol); ++i) {
+ TESTNE((void *)gelf_getsym(symbols, i, &symbol), 0);
+ if (symbol.st_shndx == maps_index) {
+ struct fuse_bpf_map *map;
+ union bpf_attr attr;
+ int map_fd;
+
+ map = (struct fuse_bpf_map *)
+ ((char *)maps->d_buf + symbol.st_value);
+
+ attr = (union bpf_attr) {
+ .map_type = map->map_type,
+ .key_size = map->key_size,
+ .value_size = map->value_size,
+ .max_entries = map->max_entries,
+ };
+
+ TEST(*mr = realloc(*mr, ++*map_count *
+ sizeof(struct fuse_bpf_map)),
+ *mr);
+ TEST(map_fd = syscall(__NR_bpf, BPF_MAP_CREATE,
+ &attr, sizeof(attr)),
+ map_fd != -1);
+ (*mr)[*map_count - 1] = (struct map_relocation) {
+ .name = strdup(elf_strptr(elf, symbol_index,
+ symbol.st_name)),
+ .fd = map_fd,
+ .value = symbol.st_value,
+ };
+ }
+ }
+
+ result = TEST_SUCCESS;
+out:
+ return result;
+}
+
+static inline int relocate_maps(GElf_Shdr *rel_header, Elf_Data *rel_data,
+ Elf_Data *prog_data, Elf_Data *symbol_data,
+ struct map_relocation *map_relocations,
+ size_t map_count)
+{
+ int result = TEST_FAILURE;
+ int i;
+ struct bpf_insn *insns = (struct bpf_insn *) prog_data->d_buf;
+
+ for (i = 0; i < rel_header->sh_size / rel_header->sh_entsize; ++i) {
+ GElf_Sym sym;
+ GElf_Rel rel;
+ unsigned int insn_idx;
+ int map_idx;
+
+ gelf_getrel(rel_data, i, &rel);
+ insn_idx = rel.r_offset / sizeof(struct bpf_insn);
+ insns[insn_idx].src_reg = BPF_PSEUDO_MAP_FD;
+
+ gelf_getsym(symbol_data, GELF_R_SYM(rel.r_info), &sym);
+ for (map_idx = 0; map_idx < map_count; map_idx++) {
+ if (map_relocations[map_idx].value == sym.st_value) {
+ insns[insn_idx].imm =
+ map_relocations[map_idx].fd;
+ break;
+ }
+ }
+ TESTNE(map_idx, map_count);
+ }
+
+ result = TEST_SUCCESS;
+out:
+ return result;
+}
+
+int install_elf_bpf(const char *file, const char *section, int *fd,
+ struct map_relocation **map_relocations, size_t *map_count)
+{
+ int result = TEST_FAILURE;
+ char path[PATH_MAX] = {};
+ char *last_slash;
+ int filter_fd = -1;
+ union bpf_attr bpf_attr;
+ static char log[1 << 20];
+ Elf *elf = NULL;
+ GElf_Ehdr ehdr;
+ Elf_Data *data_prog = NULL, *data_maps = NULL, *data_symbols = NULL;
+ int maps_index, symbol_index, prog_index;
+ int i;
+ int bpf_prog_type_fuse_fd = -1;
+ char buffer[10] = {0};
+ int bpf_prog_type_fuse;
+
+ TESTNE(readlink("/proc/self/exe", path, PATH_MAX), -1);
+ TEST(last_slash = strrchr(path, '/'), last_slash);
+ strcpy(last_slash + 1, file);
+ TEST(filter_fd = open(path, O_RDONLY | O_CLOEXEC), filter_fd != -1);
+ TESTNE(elf_version(EV_CURRENT), EV_NONE);
+ TEST(elf = elf_begin(filter_fd, ELF_C_READ, NULL), elf);
+ TESTEQUAL((void *) gelf_getehdr(elf, &ehdr), &ehdr);
+ for (i = 1; i < ehdr.e_shnum; i++) {
+ char *shname;
+ GElf_Shdr shdr;
+ Elf_Scn *scn;
+
+ TEST(scn = elf_getscn(elf, i), scn);
+ TESTEQUAL((void *)gelf_getshdr(scn, &shdr), &shdr);
+ TEST(shname = elf_strptr(elf, ehdr.e_shstrndx, shdr.sh_name),
+ shname);
+
+ if (!strcmp(shname, "maps")) {
+ TEST(data_maps = elf_getdata(scn, 0), data_maps);
+ maps_index = i;
+ } else if (shdr.sh_type == SHT_SYMTAB) {
+ TEST(data_symbols = elf_getdata(scn, 0), data_symbols);
+ symbol_index = shdr.sh_link;
+ } else if (!strcmp(shname, section)) {
+ TEST(data_prog = elf_getdata(scn, 0), data_prog);
+ prog_index = i;
+ }
+ }
+ TESTNE((void *) data_prog, NULL);
+
+ if (data_maps)
+ TESTEQUAL(install_maps(data_maps, maps_index, elf,
+ data_symbols, symbol_index,
+ map_relocations, map_count), 0);
+
+ /* Now relocate maps */
+ for (i = 1; i < ehdr.e_shnum; i++) {
+ GElf_Shdr rel_header;
+ Elf_Scn *scn;
+ Elf_Data *rel_data;
+
+ TEST(scn = elf_getscn(elf, i), scn);
+ TESTEQUAL((void *)gelf_getshdr(scn, &rel_header),
+ &rel_header);
+ if (rel_header.sh_type != SHT_REL)
+ continue;
+ TEST(rel_data = elf_getdata(scn, 0), rel_data);
+
+ if (rel_header.sh_info != prog_index)
+ continue;
+ TESTEQUAL(relocate_maps(&rel_header, rel_data,
+ data_prog, data_symbols,
+ *map_relocations, *map_count),
+ 0);
+ }
+
+ TEST(bpf_prog_type_fuse_fd = open("/sys/fs/fuse/bpf_prog_type_fuse",
+ O_RDONLY | O_CLOEXEC),
+ bpf_prog_type_fuse_fd != -1);
+ TESTGE(read(bpf_prog_type_fuse_fd, buffer, sizeof(buffer)), 1);
+ TEST(bpf_prog_type_fuse = strtol(buffer, NULL, 10),
+ bpf_prog_type_fuse != 0);
+
+ bpf_attr = (union bpf_attr) {
+ .prog_type = bpf_prog_type_fuse,
+ .insn_cnt = data_prog->d_size / 8,
+ .insns = ptr_to_u64(data_prog->d_buf),
+ .license = ptr_to_u64("GPL"),
+ .log_buf = test_options.verbose ? ptr_to_u64(log) : 0,
+ .log_size = test_options.verbose ? sizeof(log) : 0,
+ .log_level = test_options.verbose ? 2 : 0,
+ };
+ *fd = syscall(__NR_bpf, BPF_PROG_LOAD, &bpf_attr, sizeof(bpf_attr));
+ if (test_options.verbose)
+ ksft_print_msg("%s\n", log);
+ if (*fd == -1 && errno == ENOSPC)
+ ksft_print_msg("bpf log size too small!\n");
+ TESTNE(*fd, -1);
+
+ result = TEST_SUCCESS;
+out:
+ close(filter_fd);
+ close(bpf_prog_type_fuse_fd);
+ return result;
+}
+
+
diff --git a/tools/testing/selftests/filesystems/fuse/fd.txt b/tools/testing/selftests/filesystems/fuse/fd.txt
new file mode 100644
index 0000000..15ce771
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fd.txt
@@ -0,0 +1,21 @@
+fuse_daemon $*
+cd fd-dst
+ls
+cd show
+ls
+fsstress -s 123 -d . -p 4 -n 100 -l5
+echo test > wibble
+ls
+cat wibble
+fallocate -l 1000 wobble
+mkdir testdir
+mkdir tmpdir
+rmdir tmpdir
+touch tmp
+mv tmp tmp2
+rm tmp2
+
+# FUSE_LINK
+echo "ln_src contents" > ln_src
+ln ln_src ln_link
+cat ln_link
diff --git a/tools/testing/selftests/filesystems/fuse/fd_bpf.c b/tools/testing/selftests/filesystems/fuse/fd_bpf.c
new file mode 100644
index 0000000..3cd82d6
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fd_bpf.c
@@ -0,0 +1,252 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+// Copyright (c) 2021 Google LLC
+
+#include "test_fuse_bpf.h"
+
+SEC("maps") struct fuse_bpf_map test_map = {
+ BPF_MAP_TYPE_ARRAY,
+ sizeof(uint32_t),
+ sizeof(uint32_t),
+ 1000,
+};
+
+SEC("maps") struct fuse_bpf_map test_map2 = {
+ BPF_MAP_TYPE_HASH,
+ sizeof(uint32_t),
+ sizeof(uint64_t),
+ 76,
+};
+
+SEC("test_daemon") int trace_daemon(struct fuse_bpf_args *fa)
+{
+ uint64_t uid_gid = bpf_get_current_uid_gid();
+ uint32_t uid = uid_gid & 0xffffffff;
+ uint64_t pid_tgid = bpf_get_current_pid_tgid();
+ uint32_t pid = pid_tgid & 0xffffffff;
+ uint32_t key = 23;
+ uint32_t *pvalue;
+
+ pvalue = bpf_map_lookup_elem(&test_map, &key);
+ if (pvalue) {
+ uint32_t value = *pvalue;
+
+ bpf_printk("pid %u uid %u value %u", pid, uid, value);
+ value++;
+ bpf_map_update_elem(&test_map, &key, &value, BPF_ANY);
+ }
+
+ switch (fa->opcode) {
+ case FUSE_ACCESS | FUSE_PREFILTER: {
+ bpf_printk("Access: %d", fa->nodeid);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_GETATTR | FUSE_PREFILTER: {
+ const struct fuse_getattr_in *fgi = fa->in_args[0].value;
+
+ bpf_printk("Get Attr %d", fgi->fh);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_SETATTR | FUSE_PREFILTER: {
+ const struct fuse_setattr_in *fsi = fa->in_args[0].value;
+
+ bpf_printk("Set Attr %d", fsi->fh);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_OPENDIR | FUSE_PREFILTER: {
+ bpf_printk("Open Dir: %d", fa->nodeid);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_READDIR | FUSE_PREFILTER: {
+ const struct fuse_read_in *fri = fa->in_args[0].value;
+
+ bpf_printk("Read Dir: fh: %lu", fri->fh, fri->offset);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_LOOKUP | FUSE_PREFILTER: {
+ const char *name = fa->in_args[0].value;
+
+ bpf_printk("Lookup: %lx %s", fa->nodeid, name);
+ if (fa->nodeid == 1)
+ return FUSE_BPF_USER_FILTER | FUSE_BPF_BACKING;
+ else
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_MKNOD | FUSE_PREFILTER: {
+ const struct fuse_mknod_in *fmi = fa->in_args[0].value;
+ const char *name = fa->in_args[1].value;
+
+ bpf_printk("mknod %s %x %x", name, fmi->rdev | fmi->mode, fmi->umask);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_MKDIR | FUSE_PREFILTER: {
+ const struct fuse_mkdir_in *fmi = fa->in_args[0].value;
+ const char *name = fa->in_args[1].value;
+
+ bpf_printk("mkdir: %s %x %x", name, fmi->mode, fmi->umask);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_RMDIR | FUSE_PREFILTER: {
+ const char *name = fa->in_args[0].value;
+
+ bpf_printk("rmdir: %s", name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_RENAME | FUSE_PREFILTER: {
+ const char *oldname = fa->in_args[1].value;
+ const char *newname = fa->in_args[2].value;
+
+ bpf_printk("rename from %s", oldname);
+ bpf_printk("rename to %s", newname);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_RENAME2 | FUSE_PREFILTER: {
+ const struct fuse_rename2_in *fri = fa->in_args[0].value;
+ uint32_t flags = fri->flags;
+ const char *oldname = fa->in_args[1].value;
+ const char *newname = fa->in_args[2].value;
+
+ bpf_printk("rename(%x) from %s", flags, oldname);
+ bpf_printk("rename to %s", newname);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_UNLINK | FUSE_PREFILTER: {
+ const char *name = fa->in_args[0].value;
+
+ bpf_printk("unlink: %s", name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_LINK | FUSE_PREFILTER: {
+ const struct fuse_link_in *fli = fa->in_args[0].value;
+ const char *dst_name = fa->in_args[1].value;
+
+ bpf_printk("Link: %d %s", fli->oldnodeid, dst_name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_SYMLINK | FUSE_PREFILTER: {
+ const char *link_name = fa->in_args[0].value;
+ const char *link_dest = fa->in_args[1].value;
+
+ bpf_printk("symlink from %s", link_name);
+ bpf_printk("symlink to %s", link_dest);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_READLINK | FUSE_PREFILTER: {
+ const char *link_name = fa->in_args[0].value;
+
+ bpf_printk("readlink from %s", link_name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_RELEASE | FUSE_PREFILTER: {
+ const struct fuse_release_in *fri = fa->in_args[0].value;
+
+ bpf_printk("Release: %d", fri->fh);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_RELEASEDIR | FUSE_PREFILTER: {
+ const struct fuse_release_in *fri = fa->in_args[0].value;
+
+ bpf_printk("Release Dir: %d", fri->fh);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_CREATE | FUSE_PREFILTER: {
+ bpf_printk("Create %s", fa->in_args[1].value);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_OPEN | FUSE_PREFILTER: {
+ bpf_printk("Open: %d", fa->nodeid);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_READ | FUSE_PREFILTER: {
+ const struct fuse_read_in *fri = fa->in_args[0].value;
+
+ bpf_printk("Read: fh: %lu, offset %lu, size %lu",
+ fri->fh, fri->offset, fri->size);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_WRITE | FUSE_PREFILTER: {
+ const struct fuse_write_in *fwi = fa->in_args[0].value;
+
+ bpf_printk("Write: fh: %lu, offset %lu, size %lu",
+ fwi->fh, fwi->offset, fwi->size);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_FLUSH | FUSE_PREFILTER: {
+ const struct fuse_flush_in *ffi = fa->in_args[0].value;
+
+ bpf_printk("Flush %d", ffi->fh);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_FALLOCATE | FUSE_PREFILTER: {
+ const struct fuse_fallocate_in *ffa = fa->in_args[0].value;
+
+ bpf_printk("Fallocate %d %lu", ffa->fh, ffa->length);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_GETXATTR | FUSE_PREFILTER: {
+ const char *name = fa->in_args[1].value;
+
+ bpf_printk("Getxattr %d %s", fa->nodeid, name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_LISTXATTR | FUSE_PREFILTER: {
+ const char *name = fa->in_args[1].value;
+
+ bpf_printk("Listxattr %d %s", fa->nodeid, name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_SETXATTR | FUSE_PREFILTER: {
+ const char *name = fa->in_args[1].value;
+
+ bpf_printk("Setxattr %d %s", fa->nodeid, name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_STATFS | FUSE_PREFILTER: {
+ bpf_printk("statfs %d", fa->nodeid);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_LSEEK | FUSE_PREFILTER: {
+ const struct fuse_lseek_in *fli = fa->in_args[0].value;
+
+ bpf_printk("lseek type:%d, offset:%lld", fli->whence, fli->offset);
+ return FUSE_BPF_BACKING;
+ }
+
+ default:
+ if (fa->opcode & FUSE_PREFILTER)
+ bpf_printk("prefilter *** UNKNOWN *** opcode: %d",
+ fa->opcode & FUSE_OPCODE_FILTER);
+ else if (fa->opcode & FUSE_POSTFILTER)
+ bpf_printk("postfilter *** UNKNOWN *** opcode: %d",
+ fa->opcode & FUSE_OPCODE_FILTER);
+ else
+ bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+ return FUSE_BPF_BACKING;
+ }
+}
diff --git a/tools/testing/selftests/filesystems/fuse/fuse_daemon.c b/tools/testing/selftests/filesystems/fuse/fuse_daemon.c
new file mode 100644
index 0000000..1b6f8c2a
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fuse_daemon.c
@@ -0,0 +1,294 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2021 Google LLC
+ */
+
+#include "test_fuse.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+
+#include <linux/unistd.h>
+
+#include <include/uapi/linux/fuse.h>
+#include <include/uapi/linux/bpf.h>
+
+bool user_messages;
+bool kernel_messages;
+
+static int display_trace(void)
+{
+ int pid = -1;
+ int tp = -1;
+ char c;
+ ssize_t bytes_read;
+ static char line[256] = {0};
+
+ if (!kernel_messages)
+ return TEST_SUCCESS;
+
+ TEST(pid = fork(), pid != -1);
+ if (pid != 0)
+ return pid;
+
+ TESTEQUAL(tracing_on(), 0);
+ TEST(tp = s_open(s_path(tracing_folder(), s("trace_pipe")),
+ O_RDONLY | O_CLOEXEC), tp != -1);
+ for (;;) {
+ TEST(bytes_read = read(tp, &c, sizeof(c)),
+ bytes_read == 1);
+ if (c == '\n') {
+ printf("%s\n", line);
+ line[0] = 0;
+ } else
+ sprintf(line + strlen(line), "%c", c);
+ }
+out:
+ if (pid == 0) {
+ close(tp);
+ exit(TEST_FAILURE);
+ }
+ return pid;
+}
+
+static const char *fuse_opcode_to_string(int opcode)
+{
+ switch (opcode & FUSE_OPCODE_FILTER) {
+ case FUSE_LOOKUP:
+ return "FUSE_LOOKUP";
+ case FUSE_FORGET:
+ return "FUSE_FORGET";
+ case FUSE_GETATTR:
+ return "FUSE_GETATTR";
+ case FUSE_SETATTR:
+ return "FUSE_SETATTR";
+ case FUSE_READLINK:
+ return "FUSE_READLINK";
+ case FUSE_SYMLINK:
+ return "FUSE_SYMLINK";
+ case FUSE_MKNOD:
+ return "FUSE_MKNOD";
+ case FUSE_MKDIR:
+ return "FUSE_MKDIR";
+ case FUSE_UNLINK:
+ return "FUSE_UNLINK";
+ case FUSE_RMDIR:
+ return "FUSE_RMDIR";
+ case FUSE_RENAME:
+ return "FUSE_RENAME";
+ case FUSE_LINK:
+ return "FUSE_LINK";
+ case FUSE_OPEN:
+ return "FUSE_OPEN";
+ case FUSE_READ:
+ return "FUSE_READ";
+ case FUSE_WRITE:
+ return "FUSE_WRITE";
+ case FUSE_STATFS:
+ return "FUSE_STATFS";
+ case FUSE_RELEASE:
+ return "FUSE_RELEASE";
+ case FUSE_FSYNC:
+ return "FUSE_FSYNC";
+ case FUSE_SETXATTR:
+ return "FUSE_SETXATTR";
+ case FUSE_GETXATTR:
+ return "FUSE_GETXATTR";
+ case FUSE_LISTXATTR:
+ return "FUSE_LISTXATTR";
+ case FUSE_REMOVEXATTR:
+ return "FUSE_REMOVEXATTR";
+ case FUSE_FLUSH:
+ return "FUSE_FLUSH";
+ case FUSE_INIT:
+ return "FUSE_INIT";
+ case FUSE_OPENDIR:
+ return "FUSE_OPENDIR";
+ case FUSE_READDIR:
+ return "FUSE_READDIR";
+ case FUSE_RELEASEDIR:
+ return "FUSE_RELEASEDIR";
+ case FUSE_FSYNCDIR:
+ return "FUSE_FSYNCDIR";
+ case FUSE_GETLK:
+ return "FUSE_GETLK";
+ case FUSE_SETLK:
+ return "FUSE_SETLK";
+ case FUSE_SETLKW:
+ return "FUSE_SETLKW";
+ case FUSE_ACCESS:
+ return "FUSE_ACCESS";
+ case FUSE_CREATE:
+ return "FUSE_CREATE";
+ case FUSE_INTERRUPT:
+ return "FUSE_INTERRUPT";
+ case FUSE_BMAP:
+ return "FUSE_BMAP";
+ case FUSE_DESTROY:
+ return "FUSE_DESTROY";
+ case FUSE_IOCTL:
+ return "FUSE_IOCTL";
+ case FUSE_POLL:
+ return "FUSE_POLL";
+ case FUSE_NOTIFY_REPLY:
+ return "FUSE_NOTIFY_REPLY";
+ case FUSE_BATCH_FORGET:
+ return "FUSE_BATCH_FORGET";
+ case FUSE_FALLOCATE:
+ return "FUSE_FALLOCATE";
+ case FUSE_READDIRPLUS:
+ return "FUSE_READDIRPLUS";
+ case FUSE_RENAME2:
+ return "FUSE_RENAME2";
+ case FUSE_LSEEK:
+ return "FUSE_LSEEK";
+ case FUSE_COPY_FILE_RANGE:
+ return "FUSE_COPY_FILE_RANGE";
+ case FUSE_SETUPMAPPING:
+ return "FUSE_SETUPMAPPING";
+ case FUSE_REMOVEMAPPING:
+ return "FUSE_REMOVEMAPPING";
+ //case FUSE_SYNCFS:
+ // return "FUSE_SYNCFS";
+ case CUSE_INIT:
+ return "CUSE_INIT";
+ case CUSE_INIT_BSWAP_RESERVED:
+ return "CUSE_INIT_BSWAP_RESERVED";
+ case FUSE_INIT_BSWAP_RESERVED:
+ return "FUSE_INIT_BSWAP_RESERVED";
+ }
+ return "?";
+}
+
+static int parse_options(int argc, char *const *argv)
+{
+ signed char c;
+
+ while ((c = getopt(argc, argv, "kuv")) != -1)
+ switch (c) {
+ case 'v':
+ test_options.verbose = true;
+ break;
+
+ case 'u':
+ user_messages = true;
+ break;
+
+ case 'k':
+ kernel_messages = true;
+ break;
+
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+int main(int argc, char *argv[])
+{
+ int result = TEST_FAILURE;
+ int trace_pid = -1;
+ char *mount_dir = NULL;
+ char *src_dir = NULL;
+ int bpf_fd = -1;
+ int src_fd = -1;
+ int fuse_dev = -1;
+ struct map_relocation *map_relocations = NULL;
+ size_t map_count = 0;
+ int i;
+
+ if (geteuid() != 0)
+ ksft_print_msg("Not a root, might fail to mount.\n");
+ TESTEQUAL(parse_options(argc, argv), 0);
+
+ TEST(trace_pid = display_trace(), trace_pid != -1);
+
+ delete_dir_tree("fd-src", true);
+ TEST(src_dir = setup_mount_dir("fd-src"), src_dir);
+ delete_dir_tree("fd-dst", true);
+ TEST(mount_dir = setup_mount_dir("fd-dst"), mount_dir);
+
+ TESTEQUAL(install_elf_bpf("fd_bpf.bpf", "test_daemon", &bpf_fd,
+ &map_relocations, &map_count), 0);
+
+ TEST(src_fd = open("fd-src", O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTSYSCALL(mkdirat(src_fd, "show", 0777));
+ TESTSYSCALL(mkdirat(src_fd, "hide", 0777));
+
+ for (i = 0; i < map_count; ++i)
+ if (!strcmp(map_relocations[i].name, "test_map")) {
+ uint32_t key = 23;
+ uint32_t value = 1234;
+ union bpf_attr attr = {
+ .map_fd = map_relocations[i].fd,
+ .key = ptr_to_u64(&key),
+ .value = ptr_to_u64(&value),
+ .flags = BPF_ANY,
+ };
+ TESTSYSCALL(syscall(__NR_bpf, BPF_MAP_UPDATE_ELEM,
+ &attr, sizeof(attr)));
+ }
+
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ if (fork())
+ return 0;
+
+ for (;;) {
+ uint8_t bytes_in[FUSE_MIN_READ_BUFFER];
+ uint8_t bytes_out[FUSE_MIN_READ_BUFFER] __maybe_unused;
+ struct fuse_in_header *in_header =
+ (struct fuse_in_header *)bytes_in;
+ ssize_t res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+
+ if (res == -1)
+ break;
+
+ switch (in_header->opcode) {
+ case FUSE_LOOKUP | FUSE_PREFILTER: {
+ char *name = (char *)(bytes_in + sizeof(*in_header));
+
+ if (user_messages)
+ printf("Lookup %s\n", name);
+ if (!strcmp(name, "hide"))
+ TESTFUSEOUTERROR(-ENOENT);
+ else
+ TESTFUSEOUTREAD(name, strlen(name) + 1);
+ break;
+ }
+ default:
+ if (user_messages) {
+ printf("opcode is %d (%s)\n", in_header->opcode,
+ fuse_opcode_to_string(
+ in_header->opcode));
+ }
+ break;
+ }
+ }
+
+ result = TEST_SUCCESS;
+
+out:
+ for (i = 0; i < map_count; ++i) {
+ free(map_relocations[i].name);
+ close(map_relocations[i].fd);
+ }
+ free(map_relocations);
+ umount2(mount_dir, MNT_FORCE);
+ delete_dir_tree(mount_dir, true);
+ free(mount_dir);
+ delete_dir_tree(src_dir, true);
+ free(src_dir);
+ if (trace_pid != -1)
+ kill(trace_pid, SIGKILL);
+ return result;
+}
diff --git a/tools/testing/selftests/filesystems/fuse/fuse_test.c b/tools/testing/selftests/filesystems/fuse/fuse_test.c
new file mode 100644
index 0000000..c23f75b
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/fuse_test.c
@@ -0,0 +1,2142 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2021 Google LLC
+ */
+#define _GNU_SOURCE
+
+#include "test_fuse.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/inotify.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/syscall.h>
+#include <sys/wait.h>
+
+#include <linux/capability.h>
+#include <linux/random.h>
+
+#include <include/uapi/linux/fuse.h>
+#include <include/uapi/linux/bpf.h>
+
+static const char *ft_src = "ft-src";
+static const char *ft_dst = "ft-dst";
+
+static void fill_buffer(uint8_t *data, size_t len, int file, int block)
+{
+ int i;
+ int seed = 7919 * file + block;
+
+ for (i = 0; i < len; i++) {
+ seed = 1103515245 * seed + 12345;
+ data[i] = (uint8_t)(seed >> (i % 13));
+ }
+}
+
+static bool test_buffer(uint8_t *data, size_t len, int file, int block)
+{
+ int i;
+ int seed = 7919 * file + block;
+
+ for (i = 0; i < len; i++) {
+ seed = 1103515245 * seed + 12345;
+ if (data[i] != (uint8_t)(seed >> (i % 13)))
+ return false;
+ }
+
+ return true;
+}
+
+static int create_file(int dir, struct s name, int index, size_t blocks)
+{
+ int result = TEST_FAILURE;
+ int fd = -1;
+ int i;
+ uint8_t data[PAGE_SIZE];
+
+ TEST(fd = s_openat(dir, name, O_CREAT | O_WRONLY, 0777), fd != -1);
+ for (i = 0; i < blocks; ++i) {
+ fill_buffer(data, PAGE_SIZE, index, i);
+ TESTEQUAL(write(fd, data, sizeof(data)), PAGE_SIZE);
+ }
+ TESTSYSCALL(close(fd));
+ result = TEST_SUCCESS;
+
+out:
+ close(fd);
+ return result;
+}
+
+static int bpf_clear_trace(void)
+{
+ int result = TEST_FAILURE;
+ int tp = -1;
+
+ TEST(tp = s_open(s_path(tracing_folder(), s("trace")),
+ O_WRONLY | O_TRUNC | O_CLOEXEC), tp != -1);
+
+ result = TEST_SUCCESS;
+out:
+ close(tp);
+ return result;
+}
+
+static int bpf_test_trace_maybe(const char *substr, bool present)
+{
+ int result = TEST_FAILURE;
+ int tp = -1;
+ char trace_buffer[4096] = {};
+ ssize_t bytes_read;
+
+ TEST(tp = s_open(s_path(tracing_folder(), s("trace_pipe")),
+ O_RDONLY | O_CLOEXEC),
+ tp != -1);
+ fcntl(tp, F_SETFL, O_NONBLOCK);
+
+ for (;;) {
+ bytes_read = read(tp, trace_buffer, sizeof(trace_buffer));
+ if (present)
+ TESTCOND(bytes_read > 0);
+ else if (bytes_read <= 0) {
+ result = TEST_SUCCESS;
+ break;
+ }
+
+ if (test_options.verbose)
+ ksft_print_msg("%s\n", trace_buffer);
+
+ if (strstr(trace_buffer, substr)) {
+ if (present)
+ result = TEST_SUCCESS;
+ break;
+ }
+ }
+out:
+ close(tp);
+ return result;
+}
+
+static int bpf_test_trace(const char *substr)
+{
+ return bpf_test_trace_maybe(substr, true);
+}
+
+static int bpf_test_no_trace(const char *substr)
+{
+ return bpf_test_trace_maybe(substr, false);
+}
+
+static int basic_test(const char *mount_dir)
+{
+ const char *test_name = "test";
+ const char *test_data = "data";
+
+ int result = TEST_FAILURE;
+ int fuse_dev = -1;
+ char *filename = NULL;
+ int fd = -1;
+ FUSE_DECLARE_DAEMON;
+
+ TESTEQUAL(mount_fuse(mount_dir, -1, -1, &fuse_dev), 0);
+ FUSE_START_DAEMON();
+ if (action) {
+ char data[256];
+
+ filename = concat_file_name(mount_dir, test_name);
+ TESTERR(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+ TESTEQUAL(read(fd, data, strlen(test_data)), strlen(test_data));
+ TESTCOND(!strcmp(data, test_data));
+ TESTSYSCALL(close(fd));
+ fd = -1;
+ } else {
+ DECL_FUSE_IN(open);
+ DECL_FUSE_IN(read);
+ DECL_FUSE_IN(flush);
+ DECL_FUSE_IN(release);
+
+ TESTFUSELOOKUP(test_name, 0);
+ TESTFUSEOUT1(fuse_entry_out, ((struct fuse_entry_out) {
+ .nodeid = 2,
+ .generation = 1,
+ .attr.ino = 100,
+ .attr.size = 4,
+ .attr.blksize = 512,
+ .attr.mode = S_IFREG | 0777,
+ }));
+
+ TESTFUSEIN(FUSE_OPEN, open_in);
+ TESTFUSEOUT1(fuse_open_out, ((struct fuse_open_out) {
+ .fh = 1,
+ .open_flags = open_in->flags,
+ }));
+
+ //TESTFUSEINNULL(FUSE_CANONICAL_PATH);
+ //TESTFUSEOUTREAD("ignored", 7);
+
+ TESTFUSEIN(FUSE_READ, read_in);
+ TESTFUSEOUTREAD(test_data, strlen(test_data));
+
+ TESTFUSEIN(FUSE_FLUSH, flush_in);
+ TESTFUSEOUTEMPTY();
+
+ TESTFUSEIN(FUSE_RELEASE, release_in);
+ TESTFUSEOUTEMPTY();
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ close(fuse_dev);
+ close(fd);
+ free(filename);
+ umount(mount_dir);
+ return result;
+}
+
+static int bpf_test_real(const char *mount_dir)
+{
+ const char *test_name = "real";
+ const char *test_data = "Weebles wobble but they don't fall down";
+ int result = TEST_FAILURE;
+ int bpf_fd = -1;
+ int src_fd = -1;
+ int fuse_dev = -1;
+ char *filename = NULL;
+ int fd = -1;
+ char read_buffer[256] = {};
+ ssize_t bytes_read;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TEST(fd = openat(src_fd, test_name, O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+ fd != -1);
+ TESTEQUAL(write(fd, test_data, strlen(test_data)), strlen(test_data));
+ TESTSYSCALL(close(fd));
+ fd = -1;
+
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ filename = concat_file_name(mount_dir, test_name);
+ TESTERR(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+ bytes_read = read(fd, read_buffer, strlen(test_data));
+ TESTEQUAL(bytes_read, strlen(test_data));
+ TESTEQUAL(strcmp(test_data, read_buffer), 0);
+ TESTEQUAL(bpf_test_trace("read"), 0);
+
+ result = TEST_SUCCESS;
+out:
+ close(fuse_dev);
+ close(fd);
+ free(filename);
+ umount(mount_dir);
+ close(src_fd);
+ close(bpf_fd);
+ return result;
+}
+
+
+static int bpf_test_partial(const char *mount_dir)
+{
+ const char *test_name = "partial";
+ int result = TEST_FAILURE;
+ int bpf_fd = -1;
+ int src_fd = -1;
+ int fuse_dev = -1;
+ char *filename = NULL;
+ int fd = -1;
+ FUSE_DECLARE_DAEMON;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(create_file(src_fd, s(test_name), 1, 2), 0);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ FUSE_START_DAEMON();
+ if (action) {
+ uint8_t data[PAGE_SIZE];
+
+ TEST(filename = concat_file_name(mount_dir, test_name),
+ filename);
+ TESTERR(fd = open(filename, O_RDONLY | O_CLOEXEC), fd != -1);
+ TESTEQUAL(read(fd, data, PAGE_SIZE), PAGE_SIZE);
+ TESTEQUAL(bpf_test_trace("read"), 0);
+ TESTCOND(test_buffer(data, PAGE_SIZE, 2, 0));
+ TESTCOND(!test_buffer(data, PAGE_SIZE, 1, 0));
+ TESTEQUAL(read(fd, data, PAGE_SIZE), PAGE_SIZE);
+ TESTCOND(test_buffer(data, PAGE_SIZE, 1, 1));
+ TESTCOND(!test_buffer(data, PAGE_SIZE, 2, 1));
+ TESTSYSCALL(close(fd));
+ fd = -1;
+ } else {
+ DECL_FUSE(open);
+ DECL_FUSE(read);
+ DECL_FUSE(release);
+ uint8_t data[PAGE_SIZE];
+
+ TESTFUSEIN2(FUSE_OPEN | FUSE_POSTFILTER, open_in, open_out);
+ TESTFUSEOUT1(fuse_open_out, ((struct fuse_open_out) {
+ .fh = 1,
+ .open_flags = open_in->flags,
+ }));
+
+ TESTFUSEIN(FUSE_READ, read_in);
+ fill_buffer(data, PAGE_SIZE, 2, 0);
+ TESTFUSEOUTREAD(data, PAGE_SIZE);
+
+ TESTFUSEIN(FUSE_RELEASE, release_in);
+ TESTFUSEOUTEMPTY();
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ close(fuse_dev);
+ close(fd);
+ free(filename);
+ umount(mount_dir);
+ close(src_fd);
+ close(bpf_fd);
+ return result;
+}
+
+static int bpf_test_attrs(const char *mount_dir)
+{
+ const char *test_name = "partial";
+ int result = TEST_FAILURE;
+ int bpf_fd = -1;
+ int src_fd = -1;
+ int fuse_dev = -1;
+ char *filename = NULL;
+ struct stat st;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(create_file(src_fd, s(test_name), 1, 2), 0);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TEST(filename = concat_file_name(mount_dir, test_name), filename);
+ TESTSYSCALL(stat(filename, &st));
+ TESTSYSCALL(chmod(filename, 0111));
+ TESTSYSCALL(stat(filename, &st));
+ TESTEQUAL(st.st_mode & 0777, 0111);
+ TESTSYSCALL(chmod(filename, 0777));
+ TESTSYSCALL(stat(filename, &st));
+ TESTEQUAL(st.st_mode & 0777, 0777);
+ TESTSYSCALL(chown(filename, 5, 6));
+ TESTSYSCALL(stat(filename, &st));
+ TESTEQUAL(st.st_uid, 5);
+ TESTEQUAL(st.st_gid, 6);
+
+ result = TEST_SUCCESS;
+out:
+ close(fuse_dev);
+ free(filename);
+ umount(mount_dir);
+ close(src_fd);
+ close(bpf_fd);
+ return result;
+}
+
+static int bpf_test_readdir(const char *mount_dir)
+{
+ static const char * const names[] = {
+ "real", "partial", "fake", ".", ".."
+ };
+ bool used[ARRAY_SIZE(names)] = { false };
+ int result = TEST_FAILURE;
+ int bpf_fd = -1;
+ int src_fd = -1;
+ int fuse_dev = -1;
+ DIR *dir = NULL;
+ struct dirent *dirent;
+ FUSE_DECLARE_DAEMON;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(create_file(src_fd, s(names[0]), 1, 2), 0);
+ TESTEQUAL(create_file(src_fd, s(names[1]), 1, 2), 0);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ FUSE_START_DAEMON();
+ if (action) {
+ int i, j;
+
+ TEST(dir = s_opendir(s(mount_dir)), dir);
+ TESTEQUAL(bpf_test_trace("opendir"), 0);
+
+ for (i = 0; i < ARRAY_SIZE(names); ++i) {
+ TEST(dirent = readdir(dir), dirent);
+
+ for (j = 0; j < ARRAY_SIZE(names); ++j)
+ if (!used[j] &&
+ strcmp(names[j], dirent->d_name) == 0) {
+ used[j] = true;
+ break;
+ }
+ TESTNE(j, ARRAY_SIZE(names));
+ }
+ TEST(dirent = readdir(dir), dirent == NULL);
+ TESTSYSCALL(closedir(dir));
+ dir = NULL;
+ TESTEQUAL(bpf_test_trace("readdir"), 0);
+ } else {
+ struct fuse_in_header *in_header =
+ (struct fuse_in_header *)bytes_in;
+ ssize_t res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+ struct fuse_read_out *read_out =
+ (struct fuse_read_out *) (bytes_in +
+ sizeof(*in_header) +
+ sizeof(struct fuse_read_in));
+ struct fuse_dirent *fuse_dirent =
+ (struct fuse_dirent *) (bytes_in + res);
+
+ TESTGE(res, sizeof(*in_header) + sizeof(struct fuse_read_in));
+ TESTEQUAL(in_header->opcode, FUSE_READDIR | FUSE_POSTFILTER);
+ *fuse_dirent = (struct fuse_dirent) {
+ .ino = 100,
+ .off = 5,
+ .namelen = strlen("fake"),
+ .type = DT_REG,
+ };
+ strcpy((char *)(bytes_in + res + sizeof(*fuse_dirent)), "fake");
+ res += FUSE_DIRENT_ALIGN(sizeof(*fuse_dirent) + strlen("fake") +
+ 1);
+ TESTFUSEDIROUTREAD(read_out,
+ bytes_in +
+ sizeof(struct fuse_in_header) +
+ sizeof(struct fuse_read_in) +
+ sizeof(struct fuse_read_out),
+ res - sizeof(struct fuse_in_header) -
+ sizeof(struct fuse_read_in) -
+ sizeof(struct fuse_read_out));
+ res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+ TESTEQUAL(res, sizeof(*in_header) +
+ sizeof(struct fuse_read_in) +
+ sizeof(struct fuse_read_out));
+ TESTEQUAL(in_header->opcode, FUSE_READDIR | FUSE_POSTFILTER);
+ TESTFUSEDIROUTREAD(read_out, bytes_in, 0);
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ closedir(dir);
+ close(fuse_dev);
+ umount(mount_dir);
+ close(src_fd);
+ close(bpf_fd);
+ return result;
+}
+
+static int bpf_test_redact_readdir(const char *mount_dir)
+{
+ static const char * const names[] = {
+ "f1", "f2", "f3", "f4", "f5", "f6", ".", ".."
+ };
+ bool used[ARRAY_SIZE(names)] = { false };
+ int num_shown = (ARRAY_SIZE(names) - 2) / 2 + 2;
+ int result = TEST_FAILURE;
+ int bpf_fd = -1;
+ int src_fd = -1;
+ int fuse_dev = -1;
+ DIR *dir = NULL;
+ struct dirent *dirent;
+ int i;
+ int count = 0;
+ FUSE_DECLARE_DAEMON;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ for (i = 0; i < ARRAY_SIZE(names) - 2; i++)
+ TESTEQUAL(create_file(src_fd, s(names[i]), 1, 2), 0);
+
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_readdir_redact",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ FUSE_START_DAEMON();
+ if (action) {
+ int j;
+
+ TEST(dir = s_opendir(s(mount_dir)), dir);
+ while ((dirent = readdir(dir))) {
+ errno = 0;
+ TESTEQUAL(errno, 0);
+
+ for (j = 0; j < ARRAY_SIZE(names); ++j)
+ if (!used[j] &&
+ strcmp(names[j], dirent->d_name) == 0) {
+ used[j] = true;
+ count++;
+ break;
+ }
+ TESTNE(j, ARRAY_SIZE(names));
+ TESTGE(num_shown, count);
+ }
+ TESTEQUAL(count, num_shown);
+ TESTSYSCALL(closedir(dir));
+ dir = NULL;
+ } else {
+ bool skip = true;
+
+ for (int i = 0; i < ARRAY_SIZE(names) + 1; i++) {
+ uint8_t bytes_in[FUSE_MIN_READ_BUFFER];
+ uint8_t bytes_out[FUSE_MIN_READ_BUFFER];
+ struct fuse_in_header *in_header =
+ (struct fuse_in_header *)bytes_in;
+ ssize_t res = read(fuse_dev, bytes_in, sizeof(bytes_in));
+ int length_out = 0;
+ uint8_t *pos;
+ uint8_t *dirs_in;
+ uint8_t *dirs_out;
+ struct fuse_read_in *fuse_read_in;
+ struct fuse_read_out *fuse_read_out_in;
+ struct fuse_read_out *fuse_read_out_out;
+ struct fuse_dirent *fuse_dirent_in = NULL;
+ struct fuse_dirent *next = NULL;
+ bool again = false;
+ int dir_ent_len = 0;
+
+ TESTGE(res, sizeof(struct fuse_in_header) +
+ sizeof(struct fuse_read_in) +
+ sizeof(struct fuse_read_out));
+
+ pos = bytes_in + sizeof(struct fuse_in_header);
+ fuse_read_in = (struct fuse_read_in *) pos;
+ pos += sizeof(*fuse_read_in);
+ fuse_read_out_in = (struct fuse_read_out *) pos;
+ pos += sizeof(*fuse_read_out_in);
+ dirs_in = pos;
+
+ pos = bytes_out + sizeof(struct fuse_out_header);
+ fuse_read_out_out = (struct fuse_read_out *) pos;
+ pos += sizeof(*fuse_read_out_out);
+ dirs_out = pos;
+
+ if (dirs_in < bytes_in + res) {
+ bool is_dot;
+
+ fuse_dirent_in = (struct fuse_dirent *) dirs_in;
+ is_dot = (fuse_dirent_in->namelen == 1 &&
+ !strncmp(fuse_dirent_in->name, ".", 1)) ||
+ (fuse_dirent_in->namelen == 2 &&
+ !strncmp(fuse_dirent_in->name, "..", 2));
+
+ dir_ent_len = FUSE_DIRENT_ALIGN(
+ sizeof(*fuse_dirent_in) +
+ fuse_dirent_in->namelen);
+
+ if (dirs_in + dir_ent_len < bytes_in + res)
+ next = (struct fuse_dirent *)
+ (dirs_in + dir_ent_len);
+
+ if (!skip || is_dot) {
+ memcpy(dirs_out, fuse_dirent_in,
+ sizeof(struct fuse_dirent) +
+ fuse_dirent_in->namelen);
+ length_out += dir_ent_len;
+ }
+ again = ((skip && !is_dot) && next);
+
+ if (!is_dot)
+ skip = !skip;
+ }
+
+ fuse_read_out_out->offset = next ? next->off :
+ fuse_read_out_in->offset;
+ fuse_read_out_out->again = again;
+
+ {
+ struct fuse_out_header *out_header =
+ (struct fuse_out_header *)bytes_out;
+
+ *out_header = (struct fuse_out_header) {
+ .len = sizeof(*out_header) +
+ sizeof(*fuse_read_out_out) + length_out,
+ .unique = in_header->unique,
+ };
+ TESTEQUAL(write(fuse_dev, bytes_out, out_header->len),
+ out_header->len);
+ }
+ }
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ closedir(dir);
+ close(fuse_dev);
+ umount(mount_dir);
+ close(src_fd);
+ close(bpf_fd);
+ return result;
+}
+
+/*
+ * This test is more to show what classic fuse does with a creat in a subdir
+ * than a test of any new functionality
+ */
+static int bpf_test_creat(const char *mount_dir)
+{
+ const char *dir_name = "show";
+ const char *file_name = "file";
+ int result = TEST_FAILURE;
+ int fuse_dev = -1;
+ int fd = -1;
+ FUSE_DECLARE_DAEMON;
+
+ TESTEQUAL(mount_fuse(mount_dir, -1, -1, &fuse_dev), 0);
+
+ FUSE_START_DAEMON();
+ if (action) {
+ TEST(fd = s_creat(s_path(s_path(s(mount_dir), s(dir_name)),
+ s(file_name)),
+ 0777),
+ fd != -1);
+ TESTSYSCALL(close(fd));
+ } else {
+ DECL_FUSE_IN(create);
+ DECL_FUSE_IN(release);
+ DECL_FUSE_IN(flush);
+
+ TESTFUSELOOKUP(dir_name, 0);
+ TESTFUSEOUT1(fuse_entry_out, ((struct fuse_entry_out) {
+ .nodeid = 3,
+ .generation = 1,
+ .attr.ino = 100,
+ .attr.size = 4,
+ .attr.blksize = 512,
+ .attr.mode = S_IFDIR | 0777,
+ }));
+
+ TESTFUSELOOKUP(file_name, 0);
+ TESTFUSEOUTERROR(-ENOENT);
+
+ TESTFUSEINEXT(FUSE_CREATE, create_in, strlen(file_name) + 1);
+ TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+ .nodeid = 2,
+ .generation = 1,
+ .attr.ino = 200,
+ .attr.size = 4,
+ .attr.blksize = 512,
+ .attr.mode = S_IFREG,
+ }),
+ fuse_open_out, ((struct fuse_open_out) {
+ .fh = 1,
+ .open_flags = create_in->flags,
+ }));
+
+ //TESTFUSEINNULL(FUSE_CANONICAL_PATH);
+ //TESTFUSEOUTREAD("ignored", 7);
+
+ TESTFUSEIN(FUSE_FLUSH, flush_in);
+ TESTFUSEOUTEMPTY();
+
+ TESTFUSEIN(FUSE_RELEASE, release_in);
+ TESTFUSEOUTEMPTY();
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ close(fuse_dev);
+ umount(mount_dir);
+ return result;
+}
+
+static int bpf_test_hidden_entries(const char *mount_dir)
+{
+ static const char * const dir_names[] = {
+ "show",
+ "hide",
+ };
+ const char *file_name = "file";
+ const char *data = "The quick brown fox jumps over the lazy dog\n";
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ int fd = -1;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTSYSCALL(mkdirat(src_fd, dir_names[0], 0777));
+ TESTSYSCALL(mkdirat(src_fd, dir_names[1], 0777));
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_hidden",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TEST(fd = s_creat(s_path(s_path(s(mount_dir), s(dir_names[0])),
+ s(file_name)),
+ 0777),
+ fd != -1);
+ TESTSYSCALL(fallocate(fd, 0, 0, 4096));
+ TEST(write(fd, data, strlen(data)), strlen(data));
+ TESTSYSCALL(close(fd));
+ TESTEQUAL(bpf_test_trace("Create"), 0);
+
+ result = TEST_SUCCESS;
+out:
+ close(fuse_dev);
+ umount(mount_dir);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_dir(const char *mount_dir)
+{
+ const char *dir_name = "dir";
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ struct stat st;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777));
+ TESTEQUAL(bpf_test_trace("mkdir"), 0);
+ TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name)), &st));
+ TESTSYSCALL(s_rmdir(s_path(s(mount_dir), s(dir_name))));
+ TESTEQUAL(s_stat(s_path(s(ft_src), s(dir_name)), &st), -1);
+ TESTEQUAL(errno, ENOENT);
+ result = TEST_SUCCESS;
+out:
+ close(fuse_dev);
+ umount(mount_dir);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_file(const char *mount_dir, bool close_first)
+{
+ const char *file_name = "real";
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ int fd = -1;
+ struct stat st;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TEST(fd = s_creat(s_path(s(mount_dir), s(file_name)),
+ 0777),
+ fd != -1);
+ TESTEQUAL(bpf_test_trace("Create"), 0);
+ if (close_first) {
+ TESTSYSCALL(close(fd));
+ fd = -1;
+ }
+ TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+ TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+ TESTEQUAL(bpf_test_trace("unlink"), 0);
+ TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+ TESTEQUAL(errno, ENOENT);
+ if (!close_first) {
+ TESTSYSCALL(close(fd));
+ fd = -1;
+ }
+ result = TEST_SUCCESS;
+out:
+ close(fd);
+ close(fuse_dev);
+ umount(mount_dir);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_file_early_close(const char *mount_dir)
+{
+ return bpf_test_file(mount_dir, true);
+}
+
+static int bpf_test_file_late_close(const char *mount_dir)
+{
+ return bpf_test_file(mount_dir, false);
+}
+
+static int bpf_test_alter_errcode_bpf(const char *mount_dir)
+{
+ const char *dir_name = "dir";
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ struct stat st;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_error",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777));
+ //TESTEQUAL(bpf_test_trace("mkdir"), 0);
+ TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name)), &st));
+ TESTEQUAL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777), -EPERM);
+ TESTSYSCALL(s_rmdir(s_path(s(mount_dir), s(dir_name))));
+ TESTEQUAL(s_stat(s_path(s(ft_src), s(dir_name)), &st), -1);
+ TESTEQUAL(errno, ENOENT);
+ result = TEST_SUCCESS;
+out:
+ close(fuse_dev);
+ umount(mount_dir);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_alter_errcode_userspace(const char *mount_dir)
+{
+ const char *dir_name = "doesnotexist";
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ FUSE_DECLARE_DAEMON;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_error",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ FUSE_START_DAEMON();
+ if (action) {
+ TESTEQUAL(s_unlink(s_path(s(mount_dir), s(dir_name))),
+ -1);
+ TESTEQUAL(errno, ENOMEM);
+ } else {
+ TESTFUSELOOKUP("doesnotexist", FUSE_POSTFILTER);
+ TESTFUSEOUTERROR(-ENOMEM);
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ close(fuse_dev);
+ umount(mount_dir);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_mknod(const char *mount_dir)
+{
+ const char *file_name = "real";
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ struct stat st;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TESTSYSCALL(s_mkfifo(s_path(s(mount_dir), s(file_name)), 0777));
+ TESTEQUAL(bpf_test_trace("mknod"), 0);
+ TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+ TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+ TESTEQUAL(bpf_test_trace("unlink"), 0);
+ TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+ TESTEQUAL(errno, ENOENT);
+ result = TEST_SUCCESS;
+out:
+ close(fuse_dev);
+ umount(mount_dir);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_largedir(const char *mount_dir)
+{
+ const char *show = "show";
+ const int files = 1000;
+
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ struct map_relocation *map_relocations = NULL;
+ size_t map_count = 0;
+ FUSE_DECLARE_DAEMON;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("fd_bpf.bpf", "test_daemon",
+ &bpf_fd, &map_relocations, &map_count), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ FUSE_START_DAEMON();
+ if (action) {
+ int i;
+ int fd;
+ DIR *dir = NULL;
+ struct dirent *dirent;
+
+ TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(show)), 0777));
+ for (i = 0; i < files; ++i) {
+ char filename[NAME_MAX];
+
+ sprintf(filename, "%d", i);
+ TEST(fd = s_creat(s_path(s_path(s(mount_dir), s(show)),
+ s(filename)), 0777), fd != -1);
+ TESTSYSCALL(close(fd));
+ }
+
+ TEST(dir = s_opendir(s_path(s(mount_dir), s(show))), dir);
+ for (dirent = readdir(dir); dirent; dirent = readdir(dir))
+ ;
+ closedir(dir);
+ } else {
+ int i;
+
+ for (i = 0; i < files + 2; ++i) {
+ TESTFUSELOOKUP(show, FUSE_PREFILTER);
+ TESTFUSEOUTREAD(show, 5);
+ }
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ close(fuse_dev);
+ umount(mount_dir);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_link(const char *mount_dir)
+{
+ const char *file_name = "real";
+ const char *link_name = "partial";
+ int result = TEST_FAILURE;
+ int fd = -1;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ struct stat st;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace", &bpf_fd, NULL,
+ NULL),
+ 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TEST(fd = s_creat(s_path(s(mount_dir), s(file_name)), 0777), fd != -1);
+ TESTEQUAL(bpf_test_trace("Create"), 0);
+ TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+
+ TESTSYSCALL(s_link(s_path(s(mount_dir), s(file_name)),
+ s_path(s(mount_dir), s(link_name))));
+
+ TESTEQUAL(bpf_test_trace("link"), 0);
+ TESTSYSCALL(s_stat(s_path(s(ft_src), s(link_name)), &st));
+
+ TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(link_name))));
+ TESTEQUAL(bpf_test_trace("unlink"), 0);
+ TESTEQUAL(s_stat(s_path(s(ft_src), s(link_name)), &st), -1);
+ TESTEQUAL(errno, ENOENT);
+
+ TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+ TESTEQUAL(bpf_test_trace("unlink"), 0);
+ TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+ TESTEQUAL(errno, ENOENT);
+
+ result = TEST_SUCCESS;
+out:
+ close(fd);
+ close(fuse_dev);
+ umount(mount_dir);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_symlink(const char *mount_dir)
+{
+ const char *test_name = "real";
+ const char *symlink_name = "partial";
+ const char *test_data = "Weebles wobble but they don't fall down";
+ int result = TEST_FAILURE;
+ int bpf_fd = -1;
+ int src_fd = -1;
+ int fuse_dev = -1;
+ int fd = -1;
+ char read_buffer[256] = {};
+ ssize_t bytes_read;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TEST(fd = openat(src_fd, test_name, O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+ fd != -1);
+ TESTEQUAL(write(fd, test_data, strlen(test_data)), strlen(test_data));
+ TESTSYSCALL(close(fd));
+ fd = -1;
+
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TESTSYSCALL(s_symlink(s_path(s(mount_dir), s(test_name)),
+ s_path(s(mount_dir), s(symlink_name))));
+ TESTEQUAL(bpf_test_trace("symlink"), 0);
+
+ TESTERR(fd = s_open(s_path(s(mount_dir), s(symlink_name)), O_RDONLY | O_CLOEXEC), fd != -1);
+ bytes_read = read(fd, read_buffer, strlen(test_data));
+ TESTEQUAL(bpf_test_trace("readlink"), 0);
+ TESTEQUAL(bytes_read, strlen(test_data));
+ TESTEQUAL(strcmp(test_data, read_buffer), 0);
+
+ result = TEST_SUCCESS;
+out:
+ close(fuse_dev);
+ close(fd);
+ umount(mount_dir);
+ close(src_fd);
+ close(bpf_fd);
+ return result;
+}
+
+static int bpf_test_xattr(const char *mount_dir)
+{
+ static const char file_name[] = "real";
+ static const char xattr_name[] = "user.xattr_test_name";
+ static const char xattr_value[] = "this_is_a_test";
+ const size_t xattr_size = sizeof(xattr_value);
+ char xattr_value_ret[256];
+ ssize_t xattr_size_ret;
+ int result = TEST_FAILURE;
+ int fd = -1;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ struct stat st;
+
+ memset(xattr_value_ret, '\0', sizeof(xattr_value_ret));
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace", &bpf_fd, NULL,
+ NULL),
+ 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TEST(fd = s_creat(s_path(s(mount_dir), s(file_name)), 0777), fd != -1);
+ TESTEQUAL(bpf_test_trace("Create"), 0);
+ TESTSYSCALL(close(fd));
+
+ TESTSYSCALL(s_stat(s_path(s(ft_src), s(file_name)), &st));
+ TEST(result = s_getxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+ xattr_value_ret, sizeof(xattr_value_ret),
+ &xattr_size_ret),
+ result == -1);
+ TESTEQUAL(errno, ENODATA);
+ TESTEQUAL(bpf_test_trace("getxattr"), 0);
+
+ TESTSYSCALL(s_listxattr(s_path(s(mount_dir), s(file_name)),
+ xattr_value_ret, sizeof(xattr_value_ret),
+ &xattr_size_ret));
+ TESTEQUAL(bpf_test_trace("listxattr"), 0);
+ TESTEQUAL(xattr_size_ret, 0);
+
+ TESTSYSCALL(s_setxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+ xattr_value, xattr_size, 0));
+ TESTEQUAL(bpf_test_trace("setxattr"), 0);
+
+ TESTSYSCALL(s_listxattr(s_path(s(mount_dir), s(file_name)),
+ xattr_value_ret, sizeof(xattr_value_ret),
+ &xattr_size_ret));
+ TESTEQUAL(bpf_test_trace("listxattr"), 0);
+ TESTEQUAL(xattr_size_ret, sizeof(xattr_name));
+ TESTEQUAL(strcmp(xattr_name, xattr_value_ret), 0);
+
+ TESTSYSCALL(s_getxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+ xattr_value_ret, sizeof(xattr_value_ret),
+ &xattr_size_ret));
+ TESTEQUAL(bpf_test_trace("getxattr"), 0);
+ TESTEQUAL(xattr_size, xattr_size_ret);
+ TESTEQUAL(strcmp(xattr_value, xattr_value_ret), 0);
+
+ TESTSYSCALL(s_removexattr(s_path(s(mount_dir), s(file_name)), xattr_name));
+ TESTEQUAL(bpf_test_trace("removexattr"), 0);
+
+ TESTEQUAL(s_getxattr(s_path(s(mount_dir), s(file_name)), xattr_name,
+ xattr_value_ret, sizeof(xattr_value_ret),
+ &xattr_size_ret), -1);
+ TESTEQUAL(errno, ENODATA);
+
+ TESTSYSCALL(s_unlink(s_path(s(mount_dir), s(file_name))));
+ TESTEQUAL(bpf_test_trace("unlink"), 0);
+ TESTEQUAL(s_stat(s_path(s(ft_src), s(file_name)), &st), -1);
+ TESTEQUAL(errno, ENOENT);
+
+ result = TEST_SUCCESS;
+out:
+ close(fuse_dev);
+ umount(mount_dir);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_set_backing(const char *mount_dir)
+{
+ const char *backing_name = "backing";
+ const char *test_data = "data";
+ const char *test_name = "test";
+
+ int result = TEST_FAILURE;
+ int fuse_dev = -1;
+ int fd = -1;
+ FUSE_DECLARE_DAEMON;
+
+ TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+ FUSE_START_DAEMON();
+ if (action) {
+ char data[256] = {0};
+
+ TESTERR(fd = s_open(s_path(s(mount_dir), s(test_name)),
+ O_RDONLY | O_CLOEXEC), fd != -1);
+ TESTEQUAL(read(fd, data, strlen(test_data)), strlen(test_data));
+ TESTCOND(!strcmp(data, test_data));
+ TESTSYSCALL(close(fd));
+ fd = -1;
+ TESTSYSCALL(umount(mount_dir));
+ } else {
+ int bpf_fd = -1;
+ int backing_fd = -1;
+
+ TESTERR(backing_fd = s_creat(s_path(s(ft_src), s(backing_name)), 0777),
+ backing_fd != -1);
+ TESTEQUAL(write(backing_fd, test_data, strlen(test_data)),
+ strlen(test_data));
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_simple",
+ &bpf_fd, NULL, NULL), 0);
+
+ TESTFUSEINIT();
+ TESTFUSELOOKUP(test_name, 0);
+ TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {0}),
+ fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+ .backing_action = FUSE_ACTION_REPLACE,
+ .backing_fd = backing_fd,
+ .bpf_action = FUSE_ACTION_REPLACE,
+ .bpf_fd = bpf_fd,
+ }));
+ read(fuse_dev, bytes_in, sizeof(bytes_in));
+ TESTSYSCALL(close(bpf_fd));
+ TESTSYSCALL(close(backing_fd));
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ close(fuse_dev);
+ close(fd);
+ umount(mount_dir);
+ return result;
+}
+
+static int bpf_test_remove_backing(const char *mount_dir)
+{
+ const char *folder1 = "folder1";
+ const char *folder2 = "folder2";
+ const char *file = "file1";
+ const char *contents1 = "contents1";
+ const char *contents2 = "contents2";
+
+ int result = TEST_FAILURE;
+ int fuse_dev = -1;
+ int fd = -1;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ char data[256] = {0};
+ FUSE_DECLARE_DAEMON;
+
+ /*
+ * Create folder1/file
+ * folder2/file
+ *
+ * test will install bpf into mount.
+ * bpf will postfilter root lookup to daemon.
+ * daemon will remove bpf and redirect opens on folder1 to folder2.
+ * test will open folder1/file which will be redirected to folder2.
+ * test will check no traces for file, and contents are folder2/file.
+ */
+ TESTEQUAL(bpf_clear_trace(), 0);
+ TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+ TEST(fd = s_creat(s_pathn(3, s(ft_src), s(folder1), s(file)), 0777),
+ fd != -1);
+ TESTEQUAL(write(fd, contents1, strlen(contents1)), strlen(contents1));
+ TESTSYSCALL(close(fd));
+ TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder2)), 0777));
+ TEST(fd = s_creat(s_pathn(3, s(ft_src), s(folder2), s(file)), 0777),
+ fd != -1);
+ TESTEQUAL(write(fd, contents2, strlen(contents2)), strlen(contents2));
+ TESTSYSCALL(close(fd));
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_passthrough", &bpf_fd,
+ NULL, NULL), 0);
+ TESTEQUAL(mount_fuse_no_init(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ FUSE_START_DAEMON();
+ if (action) {
+ TESTERR(fd = s_open(s_pathn(3, s(mount_dir), s(folder1),
+ s(file)),
+ O_RDONLY | O_CLOEXEC), fd != -1);
+ TESTEQUAL(read(fd, data, sizeof(data)), strlen(contents2));
+ TESTCOND(!strcmp(data, contents2));
+ TESTEQUAL(bpf_test_no_trace("file"), 0);
+ TESTSYSCALL(close(fd));
+ fd = -1;
+ TESTSYSCALL(umount(mount_dir));
+ } else {
+ struct {
+ char name[8];
+ struct fuse_entry_out feo;
+ struct fuse_entry_bpf_out febo;
+ } __packed in;
+ int backing_fd = -1;
+
+ TESTFUSEINIT();
+ TESTFUSEIN(FUSE_LOOKUP | FUSE_POSTFILTER, &in);
+ TEST(backing_fd = s_open(s_path(s(ft_src), s(folder2)),
+ O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ backing_fd != -1);
+ TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {0}),
+ fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+ .bpf_action = FUSE_ACTION_REMOVE,
+ .backing_action = FUSE_ACTION_REPLACE,
+ .backing_fd = backing_fd,
+ }));
+
+ while (read(fuse_dev, bytes_in, sizeof(bytes_in)) != -1)
+ ;
+ TESTSYSCALL(close(backing_fd));
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ close(fuse_dev);
+ close(fd);
+ close(src_fd);
+ close(bpf_fd);
+ umount(mount_dir);
+ return result;
+}
+
+static int bpf_test_dir_rename(const char *mount_dir)
+{
+ const char *dir_name = "dir";
+ const char *dir_name2 = "dir2";
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ struct stat st;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir_name)), 0777));
+ TESTEQUAL(bpf_test_trace("mkdir"), 0);
+ TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name)), &st));
+ TESTSYSCALL(s_rename(s_path(s(mount_dir), s(dir_name)),
+ s_path(s(mount_dir), s(dir_name2))));
+ TESTEQUAL(s_stat(s_path(s(ft_src), s(dir_name)), &st), -1);
+ TESTEQUAL(errno, ENOENT);
+ TESTSYSCALL(s_stat(s_path(s(ft_src), s(dir_name2)), &st));
+ result = TEST_SUCCESS;
+out:
+ close(fuse_dev);
+ umount(mount_dir);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_file_rename(const char *mount_dir)
+{
+ const char *dir = "dir";
+ const char *file1 = "file1";
+ const char *file2 = "file2";
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ int fd = -1;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s(dir)), 0777));
+ TEST(fd = s_creat(s_pathn(3, s(mount_dir), s(dir), s(file1)), 0777),
+ fd != -1);
+ TESTSYSCALL(s_rename(s_pathn(3, s(mount_dir), s(dir), s(file1)),
+ s_pathn(3, s(mount_dir), s(dir), s(file2))));
+ result = TEST_SUCCESS;
+out:
+ close(fd);
+ umount(mount_dir);
+ close(fuse_dev);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int mmap_test(const char *mount_dir)
+{
+ const char *file = "file";
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int fuse_dev = -1;
+ int fd = -1;
+ char *addr = NULL;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(mount_fuse(mount_dir, -1, src_fd, &fuse_dev), 0);
+ TEST(fd = s_open(s_path(s(mount_dir), s(file)),
+ O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+ fd != -1);
+ TESTSYSCALL(fallocate(fd, 0, 4096, SEEK_CUR));
+ TEST(addr = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0),
+ addr != (void *) -1);
+ memset(addr, 'a', 4096);
+
+ result = TEST_SUCCESS;
+out:
+ munmap(addr, 4096);
+ close(fd);
+ umount(mount_dir);
+ close(fuse_dev);
+ close(src_fd);
+ return result;
+}
+
+static int readdir_perms_test(const char *mount_dir)
+{
+ int result = TEST_FAILURE;
+ struct __user_cap_header_struct uchs = { _LINUX_CAPABILITY_VERSION_3 };
+ struct __user_cap_data_struct ucds[2];
+ int src_fd = -1;
+ int fuse_dev = -1;
+ DIR *dir = NULL;
+
+ /* Must remove capabilities for this test. */
+ TESTSYSCALL(syscall(SYS_capget, &uchs, ucds));
+ ucds[0].effective &= ~(1 << CAP_DAC_OVERRIDE | 1 << CAP_DAC_READ_SEARCH);
+ TESTSYSCALL(syscall(SYS_capset, &uchs, ucds));
+
+ /* This is what we are testing in fuseland. First test without fuse, */
+ TESTSYSCALL(mkdir("test", 0111));
+ TEST(dir = opendir("test"), dir == NULL);
+ closedir(dir);
+ dir = NULL;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(mount_fuse(mount_dir, -1, src_fd, &fuse_dev), 0);
+
+ TESTSYSCALL(s_mkdir(s_path(s(mount_dir), s("test")), 0111));
+ TEST(dir = s_opendir(s_path(s(mount_dir), s("test"))), dir == NULL);
+
+ result = TEST_SUCCESS;
+out:
+ ucds[0].effective |= 1 << CAP_DAC_OVERRIDE | 1 << CAP_DAC_READ_SEARCH;
+ syscall(SYS_capset, &uchs, ucds);
+
+ closedir(dir);
+ s_rmdir(s_path(s(mount_dir), s("test")));
+ umount(mount_dir);
+ close(fuse_dev);
+ close(src_fd);
+ rmdir("test");
+ return result;
+}
+
+static int inotify_test(const char *mount_dir)
+{
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int fuse_dev = -1;
+ struct s dir;
+ int inotify_fd = -1;
+ int watch;
+ int fd = -1;
+ char buffer[sizeof(struct inotify_event) + NAME_MAX + 1];
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(mount_fuse(mount_dir, -1, src_fd, &fuse_dev), 0);
+
+ TEST(inotify_fd = inotify_init1(IN_CLOEXEC), inotify_fd != -1);
+ dir = s_path(s(mount_dir), s("dir"));
+ TESTSYSCALL(mkdir(dir.s, 0777));
+ TEST(watch = inotify_add_watch(inotify_fd, dir.s, IN_CREATE), watch);
+ TEST(fd = s_creat(s_path(s(ft_src), s("dir/file")), 0777), fd != -1);
+ // buffer will be two struct lengths, as "file" gets rounded up to the
+ // next multiple of struct inotify_event
+ TESTEQUAL(read(inotify_fd, &buffer, sizeof(buffer)),
+ sizeof(struct inotify_event) * 2);
+
+ result = TEST_SUCCESS;
+out:
+ close(fd);
+ s_unlink(s_path(s(ft_src), s("dir/file")));
+ close(inotify_fd);
+ rmdir(dir.s);
+ free(dir.s);
+ umount(mount_dir);
+ close(fuse_dev);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_statfs(const char *mount_dir)
+{
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ int fd = -1;
+ struct statfs st;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TESTSYSCALL(s_statfs(s(mount_dir), &st));
+ TESTEQUAL(bpf_test_trace("statfs"), 0);
+ TESTEQUAL(st.f_type, 0x65735546);
+ result = TEST_SUCCESS;
+out:
+ close(fd);
+ umount(mount_dir);
+ close(fuse_dev);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+static int bpf_test_lseek(const char *mount_dir)
+{
+ const char *file = "real";
+ const char *test_data = "data";
+ int result = TEST_FAILURE;
+ int src_fd = -1;
+ int bpf_fd = -1;
+ int fuse_dev = -1;
+ int fd = -1;
+
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TEST(fd = openat(src_fd, file, O_CREAT | O_RDWR | O_CLOEXEC, 0777),
+ fd != -1);
+ TESTEQUAL(write(fd, test_data, strlen(test_data)), strlen(test_data));
+ TESTSYSCALL(close(fd));
+ fd = -1;
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_trace",
+ &bpf_fd, NULL, NULL), 0);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+
+ TEST(fd = s_open(s_path(s(mount_dir), s(file)), O_RDONLY | O_CLOEXEC),
+ fd != -1);
+ TESTEQUAL(lseek(fd, 3, SEEK_SET), 3);
+ TESTEQUAL(bpf_test_trace("lseek"), 0);
+ TESTEQUAL(lseek(fd, 5, SEEK_END), 9);
+ TESTEQUAL(bpf_test_trace("lseek"), 0);
+ TESTEQUAL(lseek(fd, 1, SEEK_CUR), 10);
+ TESTEQUAL(bpf_test_trace("lseek"), 0);
+ TESTEQUAL(lseek(fd, 1, SEEK_DATA), 1);
+ TESTEQUAL(bpf_test_trace("lseek"), 0);
+ result = TEST_SUCCESS;
+out:
+ close(fd);
+ umount(mount_dir);
+ close(fuse_dev);
+ close(bpf_fd);
+ close(src_fd);
+ return result;
+}
+
+/*
+ * State:
+ * Original: dst/folder1/content.txt
+ * ^
+ * |
+ * |
+ * Backing: src/folder1/content.txt
+ *
+ * Step 1: open(folder1) - set backing to src/folder1
+ * Check 1: cat(content.txt) - check not receiving call on the fuse daemon
+ * and content is the same
+ * Step 2: readdirplus(dst)
+ * Check 2: cat(content.txt) - check not receiving call on the fuse daemon
+ * and content is the same
+ */
+static int bpf_test_readdirplus_not_overriding_backing(const char *mount_dir)
+{
+ const char *folder1 = "folder1";
+ const char *content_file = "content.txt";
+ const char *content = "hello world";
+
+ int result = TEST_FAILURE;
+ int fuse_dev = -1;
+ int src_fd = -1;
+ int content_fd = -1;
+ FUSE_DECLARE_DAEMON;
+
+ TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+ TEST(content_fd = s_creat(s_pathn(3, s(ft_src), s(folder1), s(content_file)), 0777),
+ content_fd != -1);
+ TESTEQUAL(write(content_fd, content, strlen(content)), strlen(content));
+ TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+
+ FUSE_START_DAEMON();
+ if (action) {
+ DIR *open_mount_dir = NULL;
+ struct dirent *mount_dirent;
+ int dst_folder1_fd = -1;
+ int dst_content_fd = -1;
+ char content_buffer[12];
+
+ // Step 1: Lookup folder1
+ TESTERR(dst_folder1_fd = s_open(s_path(s(mount_dir), s(folder1)),
+ O_RDONLY | O_CLOEXEC), dst_folder1_fd != -1);
+
+ // Check 1: Read content file (backed)
+ TESTERR(dst_content_fd =
+ s_open(s_pathn(3, s(mount_dir), s(folder1), s(content_file)),
+ O_RDONLY | O_CLOEXEC), dst_content_fd != -1);
+
+ TESTEQUAL(read(dst_content_fd, content_buffer, strlen(content)),
+ strlen(content));
+ TESTEQUAL(strncmp(content, content_buffer, strlen(content)), 0);
+
+ TESTSYSCALL(close(dst_content_fd));
+ dst_content_fd = -1;
+ TESTSYSCALL(close(dst_folder1_fd));
+ dst_folder1_fd = -1;
+ memset(content_buffer, 0, strlen(content));
+
+ // Step 2: readdir folder 1
+ TEST(open_mount_dir = s_opendir(s(mount_dir)),
+ open_mount_dir != NULL);
+ TEST(mount_dirent = readdir(open_mount_dir), mount_dirent != NULL);
+ TESTSYSCALL(closedir(open_mount_dir));
+ open_mount_dir = NULL;
+
+ // Check 2: Read content file again (must be backed)
+ TESTERR(dst_content_fd =
+ s_open(s_pathn(3, s(mount_dir), s(folder1), s(content_file)),
+ O_RDONLY | O_CLOEXEC), dst_content_fd != -1);
+
+ TESTEQUAL(read(dst_content_fd, content_buffer, strlen(content)),
+ strlen(content));
+ TESTEQUAL(strncmp(content, content_buffer, strlen(content)), 0);
+
+ TESTSYSCALL(close(dst_content_fd));
+ dst_content_fd = -1;
+ } else {
+ size_t read_size = 0;
+ struct fuse_in_header *in_header = (struct fuse_in_header *)bytes_in;
+ struct fuse_read_out *read_out = NULL;
+ struct fuse_attr attr = {};
+ int backing_fd = -1;
+ DECL_FUSE_IN(open);
+ DECL_FUSE_IN(getattr);
+
+ TESTFUSEINITFLAGS(FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO);
+
+ // Step 1: Lookup folder 1 with backing
+ TESTFUSELOOKUP(folder1, 0);
+ TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+ TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+ O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ backing_fd != -1);
+ TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+ .nodeid = attr.ino,
+ .generation = 0,
+ .entry_valid = UINT64_MAX,
+ .attr_valid = UINT64_MAX,
+ .entry_valid_nsec = UINT32_MAX,
+ .attr_valid_nsec = UINT32_MAX,
+ .attr = attr,
+ }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+ .backing_action = FUSE_ACTION_REPLACE,
+ .backing_fd = backing_fd,
+ }));
+ TESTSYSCALL(close(backing_fd));
+
+ // Step 2: Open root dir
+ TESTFUSEIN(FUSE_OPENDIR, open_in);
+ TESTFUSEOUT1(fuse_open_out, ((struct fuse_open_out) {
+ .fh = 100,
+ .open_flags = open_in->flags
+ }));
+
+ // Step 2: Handle getattr
+ TESTFUSEIN(FUSE_GETATTR, getattr_in);
+ TESTSYSCALL(s_fuse_attr(s(ft_src), &attr));
+ TESTFUSEOUT1(fuse_attr_out, ((struct fuse_attr_out) {
+ .attr_valid = UINT64_MAX,
+ .attr_valid_nsec = UINT32_MAX,
+ .attr = attr
+ }));
+
+ // Step 2: Handle readdirplus
+ read_size = read(fuse_dev, bytes_in, sizeof(bytes_in));
+ TESTEQUAL(in_header->opcode, FUSE_READDIRPLUS);
+
+ struct fuse_direntplus *dirent_plus =
+ (struct fuse_direntplus *) (bytes_in + read_size);
+ struct fuse_dirent dirent;
+ struct fuse_entry_out entry_out;
+
+ read_out = (struct fuse_read_out *) (bytes_in +
+ sizeof(*in_header) +
+ sizeof(struct fuse_read_in));
+
+ TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+
+ dirent = (struct fuse_dirent) {
+ .ino = attr.ino,
+ .off = 1,
+ .namelen = strlen(folder1),
+ .type = DT_REG
+ };
+ entry_out = (struct fuse_entry_out) {
+ .nodeid = attr.ino,
+ .generation = 0,
+ .entry_valid = UINT64_MAX,
+ .attr_valid = UINT64_MAX,
+ .entry_valid_nsec = UINT32_MAX,
+ .attr_valid_nsec = UINT32_MAX,
+ .attr = attr
+ };
+ *dirent_plus = (struct fuse_direntplus) {
+ .dirent = dirent,
+ .entry_out = entry_out
+ };
+
+ strcpy((char *)(bytes_in + read_size + sizeof(*dirent_plus)), folder1);
+ read_size += FUSE_DIRENT_ALIGN(sizeof(*dirent_plus) + strlen(folder1) +
+ 1);
+ TESTFUSEDIROUTREAD(read_out,
+ bytes_in +
+ sizeof(struct fuse_in_header) +
+ sizeof(struct fuse_read_in) +
+ sizeof(struct fuse_read_out),
+ read_size - sizeof(struct fuse_in_header) -
+ sizeof(struct fuse_read_in) -
+ sizeof(struct fuse_read_out));
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ close(fuse_dev);
+ close(content_fd);
+ close(src_fd);
+ umount(mount_dir);
+ return result;
+}
+
+static int bpf_test_no_readdirplus_without_nodeid(const char *mount_dir)
+{
+ const char *folder1 = "folder1";
+ const char *folder2 = "folder2";
+ int result = TEST_FAILURE;
+ int fuse_dev = -1;
+ int src_fd = -1;
+ int content_fd = -1;
+ int bpf_fd = -1;
+ FUSE_DECLARE_DAEMON;
+
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_readdirplus",
+ &bpf_fd, NULL, NULL), 0);
+ TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+ TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder2)), 0777));
+ TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+ FUSE_START_DAEMON();
+ if (action) {
+ DIR *open_dir = NULL;
+ struct dirent *dirent;
+
+ // Folder 1: Readdir with no nodeid
+ TEST(open_dir = s_opendir(s_path(s(ft_dst), s(folder1))),
+ open_dir != NULL);
+ TEST(dirent = readdir(open_dir), dirent == NULL);
+ TESTCOND(errno == EINVAL);
+ TESTSYSCALL(closedir(open_dir));
+ open_dir = NULL;
+
+ // Folder 2: Readdir with a nodeid
+ TEST(open_dir = s_opendir(s_path(s(ft_dst), s(folder2))),
+ open_dir != NULL);
+ TEST(dirent = readdir(open_dir), dirent == NULL);
+ TESTCOND(errno == EINVAL);
+ TESTSYSCALL(closedir(open_dir));
+ open_dir = NULL;
+ } else {
+ size_t read_size;
+ struct fuse_in_header *in_header = (struct fuse_in_header *)bytes_in;
+ struct fuse_attr attr = {};
+ int backing_fd = -1;
+
+ TESTFUSEINITFLAGS(FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO);
+
+ // folder 1: Set 0 as nodeid, Expect READDIR
+ TESTFUSELOOKUP(folder1, 0);
+ TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+ O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ backing_fd != -1);
+ TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+ .nodeid = 0,
+ .generation = 0,
+ .entry_valid = UINT64_MAX,
+ .attr_valid = UINT64_MAX,
+ .entry_valid_nsec = UINT32_MAX,
+ .attr_valid_nsec = UINT32_MAX,
+ .attr = attr,
+ }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+ .backing_action = FUSE_ACTION_REPLACE,
+ .backing_fd = backing_fd,
+ .bpf_action = FUSE_ACTION_REPLACE,
+ .bpf_fd = bpf_fd,
+ }));
+ TESTSYSCALL(close(backing_fd));
+ TEST(read_size = read(fuse_dev, bytes_in, sizeof(bytes_in)), read_size > 0);
+ TESTEQUAL(in_header->opcode, FUSE_READDIR);
+ TESTFUSEOUTERROR(-EINVAL);
+
+ // folder 2: Set 10 as nodeid, Expect READDIRPLUS
+ TESTFUSELOOKUP(folder2, 0);
+ TEST(backing_fd = s_open(s_path(s(ft_src), s(folder2)),
+ O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ backing_fd != -1);
+ TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+ .nodeid = 10,
+ .generation = 0,
+ .entry_valid = UINT64_MAX,
+ .attr_valid = UINT64_MAX,
+ .entry_valid_nsec = UINT32_MAX,
+ .attr_valid_nsec = UINT32_MAX,
+ .attr = attr,
+ }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+ .backing_action = FUSE_ACTION_REPLACE,
+ .backing_fd = backing_fd,
+ .bpf_action = FUSE_ACTION_REPLACE,
+ .bpf_fd = bpf_fd,
+ }));
+ TESTSYSCALL(close(backing_fd));
+ TEST(read_size = read(fuse_dev, bytes_in, sizeof(bytes_in)), read_size > 0);
+ TESTEQUAL(in_header->opcode, FUSE_READDIRPLUS);
+ TESTFUSEOUTERROR(-EINVAL);
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ close(fuse_dev);
+ close(content_fd);
+ close(src_fd);
+ close(bpf_fd);
+ umount(mount_dir);
+ return result;
+}
+
+/*
+ * State:
+ * Original: dst/folder1/content.txt
+ * ^
+ * |
+ * |
+ * Backing: src/folder1/content.txt
+ *
+ * Step 1: open(folder1) - lookup folder1 with entry_timeout set to 0
+ * Step 2: open(folder1) - lookup folder1 again to trigger revalidate wich will
+ * set backing fd
+ *
+ * Check 1: cat(content.txt) - check not receiving call on the fuse daemon
+ * and content is the same
+ */
+static int bpf_test_revalidate_handle_backing_fd(const char *mount_dir)
+{
+ const char *folder1 = "folder1";
+ const char *content_file = "content.txt";
+ const char *content = "hello world";
+ int result = TEST_FAILURE;
+ int fuse_dev = -1;
+ int src_fd = -1;
+ int content_fd = -1;
+ FUSE_DECLARE_DAEMON;
+
+ TESTSYSCALL(s_mkdir(s_path(s(ft_src), s(folder1)), 0777));
+ TEST(content_fd = s_creat(s_pathn(3, s(ft_src), s(folder1), s(content_file)), 0777),
+ content_fd != -1);
+ TESTEQUAL(write(content_fd, content, strlen(content)), strlen(content));
+ TESTSYSCALL(close(content_fd));
+ content_fd = -1;
+ TESTEQUAL(mount_fuse_no_init(mount_dir, -1, -1, &fuse_dev), 0);
+ FUSE_START_DAEMON();
+ if (action) {
+ int dst_folder1_fd = -1;
+ int dst_content_fd = -1;
+ char content_buffer[9] = {0};
+ // Step 1: Lookup folder1
+ TESTERR(dst_folder1_fd = s_open(s_path(s(mount_dir), s(folder1)),
+ O_RDONLY | O_CLOEXEC), dst_folder1_fd != -1);
+ TESTSYSCALL(close(dst_folder1_fd));
+ dst_folder1_fd = -1;
+ // Step 2: Lookup folder1 again
+ TESTERR(dst_folder1_fd = s_open(s_path(s(mount_dir), s(folder1)),
+ O_RDONLY | O_CLOEXEC), dst_folder1_fd != -1);
+ TESTSYSCALL(close(dst_folder1_fd));
+ dst_folder1_fd = -1;
+ // Check 1: Read content file (must be backed)
+ TESTERR(dst_content_fd =
+ s_open(s_pathn(3, s(mount_dir), s(folder1), s(content_file)),
+ O_RDONLY | O_CLOEXEC), dst_content_fd != -1);
+ TESTEQUAL(read(dst_content_fd, content_buffer, strlen(content)),
+ strlen(content));
+ TESTEQUAL(strncmp(content, content_buffer, strlen(content)), 0);
+ TESTSYSCALL(close(dst_content_fd));
+ dst_content_fd = -1;
+ } else {
+ struct fuse_attr attr = {};
+ int backing_fd = -1;
+
+ TESTFUSEINITFLAGS(FUSE_DO_READDIRPLUS | FUSE_READDIRPLUS_AUTO);
+ // Step 1: Lookup folder1 set entry_timeout to 0 to trigger
+ // revalidate later
+ TESTFUSELOOKUP(folder1, 0);
+ TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+ TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+ O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ backing_fd != -1);
+ TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+ .nodeid = attr.ino,
+ .generation = 0,
+ .entry_valid = 0,
+ .attr_valid = UINT64_MAX,
+ .entry_valid_nsec = 0,
+ .attr_valid_nsec = UINT32_MAX,
+ .attr = attr,
+ }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+ .backing_action = FUSE_ACTION_REPLACE,
+ .backing_fd = backing_fd,
+ }));
+ TESTSYSCALL(close(backing_fd));
+ // Step 1: Lookup folder1 as a reaction to revalidate call
+ // This attempts to change the backing node, which is not allowed on revalidate
+ TESTFUSELOOKUP(folder1, 0);
+ TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+ TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+ O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ backing_fd != -1);
+ TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+ .nodeid = attr.ino,
+ .generation = 0,
+ .entry_valid = UINT64_MAX,
+ .attr_valid = UINT64_MAX,
+ .entry_valid_nsec = UINT32_MAX,
+ .attr_valid_nsec = UINT32_MAX,
+ .attr = attr,
+ }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+ .backing_action = FUSE_ACTION_REPLACE,
+ .backing_fd = backing_fd,
+ }));
+ TESTSYSCALL(close(backing_fd));
+
+ // Lookup folder1 as a reaction to failed revalidate
+ TESTFUSELOOKUP(folder1, 0);
+ TESTSYSCALL(s_fuse_attr(s_path(s(ft_src), s(folder1)), &attr));
+ TEST(backing_fd = s_open(s_path(s(ft_src), s(folder1)),
+ O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ backing_fd != -1);
+ TESTFUSEOUT2(fuse_entry_out, ((struct fuse_entry_out) {
+ .nodeid = attr.ino,
+ .generation = 0,
+ .entry_valid = UINT64_MAX,
+ .attr_valid = UINT64_MAX,
+ .entry_valid_nsec = UINT32_MAX,
+ .attr_valid_nsec = UINT32_MAX,
+ .attr = attr,
+ }), fuse_entry_bpf_out, ((struct fuse_entry_bpf_out) {
+ .backing_action = FUSE_ACTION_REPLACE,
+ .backing_fd = backing_fd,
+ }));
+ TESTSYSCALL(close(backing_fd));
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ close(fuse_dev);
+ close(content_fd);
+ close(src_fd);
+ umount(mount_dir);
+ return result;
+}
+
+static int bpf_test_lookup_postfilter(const char *mount_dir)
+{
+ const char *file1_name = "file1";
+ const char *file2_name = "file2";
+ const char *file3_name = "file3";
+ int result = TEST_FAILURE;
+ int bpf_fd = -1;
+ int src_fd = -1;
+ int fuse_dev = -1;
+ int file_fd = -1;
+ FUSE_DECLARE_DAEMON;
+
+ TEST(file_fd = s_creat(s_path(s(ft_src), s(file1_name)), 0777),
+ file_fd != -1);
+ TESTSYSCALL(close(file_fd));
+ TEST(file_fd = s_creat(s_path(s(ft_src), s(file2_name)), 0777),
+ file_fd != -1);
+ TESTSYSCALL(close(file_fd));
+ file_fd = -1;
+ TESTEQUAL(install_elf_bpf("test_bpf.bpf", "test_lookup_postfilter",
+ &bpf_fd, NULL, NULL), 0);
+ TEST(src_fd = open(ft_src, O_DIRECTORY | O_RDONLY | O_CLOEXEC),
+ src_fd != -1);
+ TESTEQUAL(mount_fuse(mount_dir, bpf_fd, src_fd, &fuse_dev), 0);
+ FUSE_START_DAEMON();
+ if (action) {
+ int fd = -1;
+
+ TESTEQUAL(s_open(s_path(s(mount_dir), s(file1_name)), O_RDONLY),
+ -1);
+ TESTEQUAL(errno, ENOENT);
+ TEST(fd = s_open(s_path(s(mount_dir), s(file2_name)), O_RDONLY),
+ fd != -1);
+ TESTSYSCALL(close(fd));
+ TESTEQUAL(s_open(s_path(s(mount_dir), s(file3_name)), O_RDONLY),
+ -1);
+ } else {
+ struct fuse_in_postfilter_header *in_header =
+ (struct fuse_in_postfilter_header *)bytes_in;
+ struct fuse_entry_out *feo;
+ struct fuse_entry_bpf_out *febo;
+
+ TESTFUSELOOKUP(file1_name, FUSE_POSTFILTER);
+ TESTFUSEOUTERROR(-ENOENT);
+
+ TESTFUSELOOKUP(file2_name, FUSE_POSTFILTER);
+ feo = (struct fuse_entry_out *) (bytes_in +
+ sizeof(struct fuse_in_header) + strlen(file2_name) + 1);
+ febo = (struct fuse_entry_bpf_out *) ((char *)feo +
+ sizeof(*feo));
+ TESTFUSEOUT2(fuse_entry_out, *feo, fuse_entry_bpf_out, *febo);
+
+ TESTFUSELOOKUP(file3_name, FUSE_POSTFILTER);
+ TESTEQUAL(in_header->error_in, -ENOENT);
+ TESTFUSEOUTERROR(-ENOENT);
+ exit(TEST_SUCCESS);
+ }
+ FUSE_END_DAEMON();
+ close(file_fd);
+ close(fuse_dev);
+ umount(mount_dir);
+ close(src_fd);
+ close(bpf_fd);
+ return result;
+}
+
+static void parse_range(const char *ranges, bool *run_test, size_t tests)
+{
+ size_t i;
+ char *range;
+
+ for (i = 0; i < tests; ++i)
+ run_test[i] = false;
+
+ range = strtok(optarg, ",");
+ while (range) {
+ char *dash = strchr(range, '-');
+
+ if (dash) {
+ size_t start = 1, end = tests;
+ char *end_ptr;
+
+ if (dash > range) {
+ start = strtol(range, &end_ptr, 10);
+ if (*end_ptr != '-' || start <= 0 || start > tests)
+ ksft_exit_fail_msg("Bad range\n");
+ }
+
+ if (dash[1]) {
+ end = strtol(dash + 1, &end_ptr, 10);
+ if (*end_ptr || end <= start || end > tests)
+ ksft_exit_fail_msg("Bad range\n");
+ }
+
+ for (i = start; i <= end; ++i)
+ run_test[i - 1] = true;
+ } else {
+ char *end;
+ long value = strtol(range, &end, 10);
+
+ if (*end || value <= 0 || value > tests)
+ ksft_exit_fail_msg("Bad range\n");
+ run_test[value - 1] = true;
+ }
+ range = strtok(NULL, ",");
+ }
+}
+
+static int parse_options(int argc, char *const *argv, bool *run_test,
+ size_t tests)
+{
+ signed char c;
+
+ while ((c = getopt(argc, argv, "f:t:v")) != -1)
+ switch (c) {
+ case 'f':
+ test_options.file = strtol(optarg, NULL, 10);
+ break;
+
+ case 't':
+ parse_range(optarg, run_test, tests);
+ break;
+
+ case 'v':
+ test_options.verbose = true;
+ break;
+
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+struct test_case {
+ int (*pfunc)(const char *dir);
+ const char *name;
+};
+
+static void run_one_test(const char *mount_dir,
+ const struct test_case *test_case)
+{
+ ksft_print_msg("Running %s\n", test_case->name);
+ if (test_case->pfunc(mount_dir) == TEST_SUCCESS)
+ ksft_test_result_pass("%s\n", test_case->name);
+ else
+ ksft_test_result_fail("%s\n", test_case->name);
+}
+
+int main(int argc, char *argv[])
+{
+ char *mount_dir = NULL;
+ char *src_dir = NULL;
+ int i;
+ int fd, count;
+
+#define MAKE_TEST(test) \
+ { \
+ test, #test \
+ }
+ const struct test_case cases[] = {
+ MAKE_TEST(basic_test),
+ MAKE_TEST(bpf_test_real),
+ MAKE_TEST(bpf_test_partial),
+ MAKE_TEST(bpf_test_attrs),
+ MAKE_TEST(bpf_test_readdir),
+ MAKE_TEST(bpf_test_creat),
+ MAKE_TEST(bpf_test_hidden_entries),
+ MAKE_TEST(bpf_test_dir),
+ MAKE_TEST(bpf_test_file_early_close),
+ MAKE_TEST(bpf_test_file_late_close),
+ MAKE_TEST(bpf_test_mknod),
+ MAKE_TEST(bpf_test_largedir),
+ MAKE_TEST(bpf_test_link),
+ MAKE_TEST(bpf_test_symlink),
+ MAKE_TEST(bpf_test_xattr),
+ MAKE_TEST(bpf_test_redact_readdir),
+ MAKE_TEST(bpf_test_set_backing),
+ MAKE_TEST(bpf_test_remove_backing),
+ MAKE_TEST(bpf_test_dir_rename),
+ MAKE_TEST(bpf_test_file_rename),
+ MAKE_TEST(bpf_test_alter_errcode_bpf),
+ MAKE_TEST(bpf_test_alter_errcode_userspace),
+ MAKE_TEST(mmap_test),
+ MAKE_TEST(readdir_perms_test),
+ MAKE_TEST(inotify_test),
+ MAKE_TEST(bpf_test_statfs),
+ MAKE_TEST(bpf_test_lseek),
+ MAKE_TEST(bpf_test_readdirplus_not_overriding_backing),
+ MAKE_TEST(bpf_test_no_readdirplus_without_nodeid),
+ MAKE_TEST(bpf_test_revalidate_handle_backing_fd),
+ MAKE_TEST(bpf_test_lookup_postfilter),
+ };
+#undef MAKE_TEST
+
+ bool run_test[ARRAY_SIZE(cases)];
+
+ for (int i = 0; i < ARRAY_SIZE(cases); ++i)
+ run_test[i] = true;
+
+ if (parse_options(argc, argv, run_test, ARRAY_SIZE(cases)))
+ ksft_exit_fail_msg("Bad options\n");
+
+ // Seed randomness pool for testing on QEMU
+ // NOTE - this abuses the concept of randomness - do *not* ever do this
+ // on a machine for production use - the device will think it has good
+ // randomness when it does not.
+ fd = open("/dev/urandom", O_WRONLY | O_CLOEXEC);
+ count = 4096;
+ for (int i = 0; i < 128; ++i)
+ ioctl(fd, RNDADDTOENTCNT, &count);
+ close(fd);
+
+ ksft_print_header();
+
+ if (geteuid() != 0)
+ ksft_print_msg("Not a root, might fail to mount.\n");
+
+ if (tracing_on() != TEST_SUCCESS)
+ ksft_exit_fail_msg("Can't turn on tracing\n");
+
+ src_dir = setup_mount_dir(ft_src);
+ mount_dir = setup_mount_dir(ft_dst);
+ if (src_dir == NULL || mount_dir == NULL)
+ ksft_exit_fail_msg("Can't create a mount dir\n");
+
+ ksft_set_plan(ARRAY_SIZE(run_test));
+
+ for (i = 0; i < ARRAY_SIZE(run_test); ++i)
+ if (run_test[i]) {
+ delete_dir_tree(mount_dir, false);
+ delete_dir_tree(src_dir, false);
+ run_one_test(mount_dir, &cases[i]);
+ } else
+ ksft_cnt.ksft_xskip++;
+
+ umount2(mount_dir, MNT_FORCE);
+ delete_dir_tree(mount_dir, true);
+ delete_dir_tree(src_dir, true);
+ return !ksft_get_fail_cnt() ? ksft_exit_pass() : ksft_exit_fail();
+}
diff --git a/tools/testing/selftests/filesystems/fuse/test_bpf.c b/tools/testing/selftests/filesystems/fuse/test_bpf.c
new file mode 100644
index 0000000..032cb11
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_bpf.c
@@ -0,0 +1,507 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+// Copyright (c) 2022 Google LLC
+
+#include "test_fuse_bpf.h"
+
+SEC("test_readdir_redact")
+/* return FUSE_BPF_BACKING to use backing fs, 0 to pass to usermode */
+int readdir_test(struct fuse_bpf_args *fa)
+{
+ switch (fa->opcode) {
+ case FUSE_READDIR | FUSE_PREFILTER: {
+ const struct fuse_read_in *fri = fa->in_args[0].value;
+
+ bpf_printk("readdir %d", fri->fh);
+ return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+ }
+
+ case FUSE_READDIR | FUSE_POSTFILTER: {
+ const struct fuse_read_in *fri = fa->in_args[0].value;
+
+ bpf_printk("readdir postfilter %x", fri->fh);
+ return FUSE_BPF_USER_FILTER;
+ }
+
+ default:
+ bpf_printk("opcode %d", fa->opcode);
+ return FUSE_BPF_BACKING;
+ }
+}
+
+SEC("test_trace")
+/* return FUSE_BPF_BACKING to use backing fs, 0 to pass to usermode */
+int trace_test(struct fuse_bpf_args *fa)
+{
+ switch (fa->opcode) {
+ case FUSE_LOOKUP | FUSE_PREFILTER: {
+ /* real and partial use backing file */
+ const char *name = fa->in_args[0].value;
+ bool backing = false;
+
+ if (strcmp(name, "real") == 0 || strcmp(name, "partial") == 0)
+ backing = true;
+
+ if (strcmp(name, "dir") == 0)
+ backing = true;
+ if (strcmp(name, "dir2") == 0)
+ backing = true;
+
+ if (strcmp(name, "file1") == 0)
+ backing = true;
+ if (strcmp(name, "file2") == 0)
+ backing = true;
+
+ bpf_printk("lookup %s %d", name, backing);
+ return backing ? FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER : 0;
+ }
+
+ case FUSE_LOOKUP | FUSE_POSTFILTER: {
+ const char *name = fa->in_args[0].value;
+ struct fuse_entry_out *feo = fa->out_args[0].value;
+
+ if (strcmp(name, "real") == 0)
+ feo->nodeid = 5;
+ else if (strcmp(name, "partial") == 0)
+ feo->nodeid = 6;
+
+ bpf_printk("post-lookup %s %d", name, feo->nodeid);
+ return 0;
+ }
+
+ case FUSE_ACCESS | FUSE_PREFILTER: {
+ bpf_printk("Access: %d", fa->nodeid);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_CREATE | FUSE_PREFILTER:
+ bpf_printk("Create: %d", fa->nodeid);
+ return FUSE_BPF_BACKING;
+
+ case FUSE_MKNOD | FUSE_PREFILTER: {
+ const struct fuse_mknod_in *fmi = fa->in_args[0].value;
+ const char *name = fa->in_args[1].value;
+
+ bpf_printk("mknod %s %x %x", name, fmi->rdev | fmi->mode, fmi->umask);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_MKDIR | FUSE_PREFILTER: {
+ const struct fuse_mkdir_in *fmi = fa->in_args[0].value;
+ const char *name = fa->in_args[1].value;
+
+ bpf_printk("mkdir %s %x %x", name, fmi->mode, fmi->umask);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_RMDIR | FUSE_PREFILTER: {
+ const char *name = fa->in_args[0].value;
+
+ bpf_printk("rmdir %s", name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_RENAME | FUSE_PREFILTER: {
+ const char *oldname = fa->in_args[1].value;
+ const char *newname = fa->in_args[2].value;
+
+ bpf_printk("rename from %s", oldname);
+ bpf_printk("rename to %s", newname);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_RENAME2 | FUSE_PREFILTER: {
+ const struct fuse_rename2_in *fri = fa->in_args[0].value;
+ uint32_t flags = fri->flags;
+ const char *oldname = fa->in_args[1].value;
+ const char *newname = fa->in_args[2].value;
+
+ bpf_printk("rename(%x) from %s", flags, oldname);
+ bpf_printk("rename to %s", newname);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_UNLINK | FUSE_PREFILTER: {
+ const char *name = fa->in_args[0].value;
+
+ bpf_printk("unlink %s", name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_LINK | FUSE_PREFILTER: {
+ const struct fuse_link_in *fli = fa->in_args[0].value;
+ const char *link_name = fa->in_args[1].value;
+
+ bpf_printk("link %d %s", fli->oldnodeid, link_name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_SYMLINK | FUSE_PREFILTER: {
+ const char *link_name = fa->in_args[0].value;
+ const char *link_dest = fa->in_args[1].value;
+
+ bpf_printk("symlink from %s", link_name);
+ bpf_printk("symlink to %s", link_dest);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_READLINK | FUSE_PREFILTER: {
+ const char *link_name = fa->in_args[0].value;
+
+ bpf_printk("readlink from", link_name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_OPEN | FUSE_PREFILTER: {
+ int backing = 0;
+
+ switch (fa->nodeid) {
+ case 5:
+ backing = FUSE_BPF_BACKING;
+ break;
+
+ case 6:
+ backing = FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+ break;
+
+ default:
+ break;
+ }
+
+ bpf_printk("open %d %d", fa->nodeid, backing);
+ return backing;
+ }
+
+ case FUSE_OPEN | FUSE_POSTFILTER:
+ bpf_printk("open postfilter");
+ return FUSE_BPF_USER_FILTER;
+
+ case FUSE_READ | FUSE_PREFILTER: {
+ const struct fuse_read_in *fri = fa->in_args[0].value;
+
+ bpf_printk("read %llu %llu", fri->fh, fri->offset);
+ if (fri->fh == 1 && fri->offset == 0)
+ return 0;
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_GETATTR | FUSE_PREFILTER: {
+ /* real and partial use backing file */
+ int backing = 0;
+
+ switch (fa->nodeid) {
+ case 1:
+ case 5:
+ case 6:
+ /*
+ * TODO: Find better solution
+ * Add 100 to stop clang compiling to jump table which bpf hates
+ */
+ case 100:
+ backing = FUSE_BPF_BACKING;
+ break;
+ }
+
+ bpf_printk("getattr %d %d", fa->nodeid, backing);
+ return backing;
+ }
+
+ case FUSE_SETATTR | FUSE_PREFILTER: {
+ /* real and partial use backing file */
+ int backing = 0;
+
+ switch (fa->nodeid) {
+ case 1:
+ case 5:
+ case 6:
+ /* TODO See above */
+ case 100:
+ backing = FUSE_BPF_BACKING;
+ break;
+ }
+
+ bpf_printk("setattr %d %d", fa->nodeid, backing);
+ return backing;
+ }
+
+ case FUSE_OPENDIR | FUSE_PREFILTER: {
+ int backing = 0;
+
+ switch (fa->nodeid) {
+ case 1:
+ backing = FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+ break;
+ }
+
+ bpf_printk("opendir %d %d", fa->nodeid, backing);
+ return backing;
+ }
+
+ case FUSE_OPENDIR | FUSE_POSTFILTER: {
+ struct fuse_open_out *foo = fa->out_args[0].value;
+
+ foo->fh = 2;
+ bpf_printk("opendir postfilter");
+ return 0;
+ }
+
+ case FUSE_READDIR | FUSE_PREFILTER: {
+ const struct fuse_read_in *fri = fa->in_args[0].value;
+ int backing = 0;
+
+ if (fri->fh == 2)
+ backing = FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+
+ bpf_printk("readdir %d %d", fri->fh, backing);
+ return backing;
+ }
+
+ case FUSE_READDIR | FUSE_POSTFILTER: {
+ const struct fuse_read_in *fri = fa->in_args[0].value;
+ int backing = 0;
+
+ if (fri->fh == 2)
+ backing = FUSE_BPF_USER_FILTER | FUSE_BPF_BACKING |
+ FUSE_BPF_POST_FILTER;
+
+ bpf_printk("readdir postfilter %d %d", fri->fh, backing);
+ return backing;
+ }
+
+ case FUSE_FLUSH | FUSE_PREFILTER: {
+ const struct fuse_flush_in *ffi = fa->in_args[0].value;
+
+ bpf_printk("Flush %d", ffi->fh);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_GETXATTR | FUSE_PREFILTER: {
+ const struct fuse_flush_in *ffi = fa->in_args[0].value;
+ const char *name = fa->in_args[1].value;
+
+ bpf_printk("getxattr %d %s", ffi->fh, name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_LISTXATTR | FUSE_PREFILTER: {
+ const struct fuse_flush_in *ffi = fa->in_args[0].value;
+ const char *name = fa->in_args[1].value;
+
+ bpf_printk("listxattr %d %s", ffi->fh, name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_SETXATTR | FUSE_PREFILTER: {
+ const struct fuse_flush_in *ffi = fa->in_args[0].value;
+ const char *name = fa->in_args[1].value;
+ unsigned int size = fa->in_args[2].size;
+
+ bpf_printk("setxattr %d %s %u", ffi->fh, name, size);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_REMOVEXATTR | FUSE_PREFILTER: {
+ const char *name = fa->in_args[0].value;
+
+ bpf_printk("removexattr %s", name);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_CANONICAL_PATH | FUSE_PREFILTER: {
+ bpf_printk("canonical_path");
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_STATFS | FUSE_PREFILTER: {
+ bpf_printk("statfs");
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_LSEEK | FUSE_PREFILTER: {
+ const struct fuse_lseek_in *fli = fa->in_args[0].value;
+
+ bpf_printk("lseek type:%d, offset:%lld", fli->whence, fli->offset);
+ return FUSE_BPF_BACKING;
+ }
+
+ default:
+ bpf_printk("Unknown opcode %d", fa->opcode);
+ return 0;
+ }
+}
+
+SEC("test_hidden")
+int trace_hidden(struct fuse_bpf_args *fa)
+{
+ switch (fa->opcode) {
+ case FUSE_LOOKUP | FUSE_PREFILTER: {
+ const char *name = fa->in_args[0].value;
+
+ bpf_printk("Lookup: %s", name);
+ if (!strcmp(name, "show"))
+ return FUSE_BPF_BACKING;
+ if (!strcmp(name, "hide"))
+ return -ENOENT;
+
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_ACCESS | FUSE_PREFILTER: {
+ bpf_printk("Access: %d", fa->nodeid);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_CREATE | FUSE_PREFILTER:
+ bpf_printk("Create: %d", fa->nodeid);
+ return FUSE_BPF_BACKING;
+
+ case FUSE_WRITE | FUSE_PREFILTER:
+ // TODO: Clang combines similar printk calls, causing BPF to complain
+ // bpf_printk("Write: %d", fa->nodeid);
+ return FUSE_BPF_BACKING;
+
+ case FUSE_FLUSH | FUSE_PREFILTER: {
+ // const struct fuse_flush_in *ffi = fa->in_args[0].value;
+
+ // bpf_printk("Flush %d", ffi->fh);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_RELEASE | FUSE_PREFILTER: {
+ // const struct fuse_release_in *fri = fa->in_args[0].value;
+
+ // bpf_printk("Release %d", fri->fh);
+ return FUSE_BPF_BACKING;
+ }
+
+ case FUSE_FALLOCATE | FUSE_PREFILTER:
+ // bpf_printk("fallocate %d", fa->nodeid);
+ return FUSE_BPF_BACKING;
+
+ case FUSE_CANONICAL_PATH | FUSE_PREFILTER: {
+ return FUSE_BPF_BACKING;
+ }
+ default:
+ bpf_printk("Unknown opcode: %d", fa->opcode);
+ return 0;
+ }
+}
+
+SEC("test_simple")
+int trace_simple(struct fuse_bpf_args *fa)
+{
+ if (fa->opcode & FUSE_PREFILTER)
+ bpf_printk("prefilter opcode: %d",
+ fa->opcode & FUSE_OPCODE_FILTER);
+ else if (fa->opcode & FUSE_POSTFILTER)
+ bpf_printk("postfilter opcode: %d",
+ fa->opcode & FUSE_OPCODE_FILTER);
+ else
+ bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+ return FUSE_BPF_BACKING;
+}
+
+SEC("test_passthrough")
+int trace_daemon(struct fuse_bpf_args *fa)
+{
+ switch (fa->opcode) {
+ case FUSE_LOOKUP | FUSE_PREFILTER: {
+ const char *name = fa->in_args[0].value;
+
+ bpf_printk("Lookup prefilter: %lx %s", fa->nodeid, name);
+ return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+ }
+
+ case FUSE_LOOKUP | FUSE_POSTFILTER: {
+ const char *name = fa->in_args[0].value;
+ struct fuse_entry_bpf_out *febo = fa->out_args[1].value;
+
+ bpf_printk("Lookup postfilter: %lx %s %lu", fa->nodeid, name);
+ febo->bpf_action = FUSE_ACTION_REMOVE;
+
+ return FUSE_BPF_USER_FILTER;
+ }
+
+ default:
+ if (fa->opcode & FUSE_PREFILTER)
+ bpf_printk("prefilter opcode: %d",
+ fa->opcode & FUSE_OPCODE_FILTER);
+ else if (fa->opcode & FUSE_POSTFILTER)
+ bpf_printk("postfilter opcode: %d",
+ fa->opcode & FUSE_OPCODE_FILTER);
+ else
+ bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+ return FUSE_BPF_BACKING;
+ }
+}
+
+SEC("test_error")
+/* return FUSE_BPF_BACKING to use backing fs, 0 to pass to usermode */
+int error_test(struct fuse_bpf_args *fa)
+{
+ switch (fa->opcode) {
+ case FUSE_MKDIR | FUSE_PREFILTER: {
+ bpf_printk("mkdir");
+ return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+ }
+ case FUSE_MKDIR | FUSE_POSTFILTER: {
+ bpf_printk("mkdir postfilter");
+ if (fa->error_in == -EEXIST)
+ return -EPERM;
+
+ return 0;
+ }
+
+ case FUSE_LOOKUP | FUSE_PREFILTER: {
+ const char *name = fa->in_args[0].value;
+
+ bpf_printk("lookup prefilter %s", name);
+ return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+ }
+ case FUSE_LOOKUP | FUSE_POSTFILTER: {
+ const char *name = fa->in_args[0].value;
+
+ bpf_printk("lookup postfilter %s %d", name, fa->error_in);
+ if (strcmp(name, "doesnotexist") == 0/* && fa->error_in == -EEXIST*/) {
+ bpf_printk("lookup postfilter doesnotexist");
+ return FUSE_BPF_USER_FILTER;
+ }
+ bpf_printk("meh");
+ return 0;
+ }
+
+ default:
+ if (fa->opcode & FUSE_PREFILTER)
+ bpf_printk("prefilter opcode: %d",
+ fa->opcode & FUSE_OPCODE_FILTER);
+ else if (fa->opcode & FUSE_POSTFILTER)
+ bpf_printk("postfilter opcode: %d",
+ fa->opcode & FUSE_OPCODE_FILTER);
+ else
+ bpf_printk("*** UNKNOWN *** opcode: %d", fa->opcode);
+ return FUSE_BPF_BACKING;
+ }
+}
+
+SEC("test_readdirplus")
+int readdirplus_test(struct fuse_bpf_args *fa)
+{
+ switch (fa->opcode) {
+ case FUSE_READDIR | FUSE_PREFILTER: {
+ return 0;
+ }
+ }
+ return FUSE_BPF_BACKING;
+}
+
+SEC("test_lookup_postfilter")
+int lookuppostfilter_test(struct fuse_bpf_args *fa)
+{
+ switch (fa->opcode) {
+ case FUSE_LOOKUP | FUSE_PREFILTER:
+ return FUSE_BPF_BACKING | FUSE_BPF_POST_FILTER;
+ case FUSE_LOOKUP | FUSE_POSTFILTER:
+ return FUSE_BPF_USER_FILTER;
+ default:
+ return FUSE_BPF_BACKING;
+ }
+}
diff --git a/tools/testing/selftests/filesystems/fuse/test_framework.h b/tools/testing/selftests/filesystems/fuse/test_framework.h
new file mode 100644
index 0000000..47047c2
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_framework.h
@@ -0,0 +1,181 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2021 Google LLC
+ */
+
+#ifndef _TEST_FRAMEWORK_H
+#define _TEST_FRAMEWORK_H
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <linux/compiler.h>
+
+#ifdef __ANDROID__
+static int test_case_pass;
+static int test_case_fail;
+#define ksft_print_msg printf
+#define ksft_test_result_pass(...) ({test_case_pass++; printf(__VA_ARGS__); })
+#define ksft_test_result_fail(...) ({test_case_fail++; printf(__VA_ARGS__); })
+#define ksft_exit_fail_msg(...) printf(__VA_ARGS__)
+#define ksft_print_header()
+#define ksft_set_plan(cnt)
+#define ksft_get_fail_cnt() test_case_fail
+#define ksft_exit_pass() 0
+#define ksft_exit_fail() 1
+#else
+#include <kselftest.h>
+#endif
+
+#define TEST_FAILURE 1
+#define TEST_SUCCESS 0
+
+#define ptr_to_u64(p) ((__u64)p)
+
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+#define le16_to_cpu(x) (x)
+#define le32_to_cpu(x) (x)
+#define le64_to_cpu(x) (x)
+#else
+#error Big endian not supported!
+#endif
+
+struct _test_options {
+ int file;
+ bool verbose;
+};
+
+extern struct _test_options test_options;
+
+#define TESTCOND(condition) \
+ do { \
+ if (!(condition)) { \
+ ksft_print_msg("%s failed %d\n", \
+ __func__, __LINE__); \
+ goto out; \
+ } else if (test_options.verbose) \
+ ksft_print_msg("%s succeeded %d\n", \
+ __func__, __LINE__); \
+ } while (false)
+
+#define TESTCONDERR(condition) \
+ do { \
+ if (!(condition)) { \
+ ksft_print_msg("%s failed %d\n", \
+ __func__, __LINE__); \
+ ksft_print_msg("Error %d (\"%s\")\n", \
+ errno, strerror(errno)); \
+ goto out; \
+ } else if (test_options.verbose) \
+ ksft_print_msg("%s succeeded %d\n", \
+ __func__, __LINE__); \
+ } while (false)
+
+#define TEST(statement, condition) \
+ do { \
+ statement; \
+ TESTCOND(condition); \
+ } while (false)
+
+#define TESTERR(statement, condition) \
+ do { \
+ statement; \
+ TESTCONDERR(condition); \
+ } while (false)
+
+enum _operator {
+ _eq,
+ _ne,
+ _ge,
+};
+
+static const char * const _operator_name[] = {
+ "==",
+ "!=",
+ ">=",
+};
+
+#define _TEST_OPERATOR(name, _type, format_specifier) \
+static inline int _test_operator_##name(const char *func, int line, \
+ _type a, _type b, enum _operator o) \
+{ \
+ bool pass; \
+ switch (o) { \
+ case _eq: \
+ pass = a == b; \
+ break; \
+ case _ne: \
+ pass = a != b; \
+ break; \
+ case _ge: \
+ pass = a >= b; \
+ break; \
+ } \
+ \
+ if (!pass) \
+ ksft_print_msg("Failed: %s at line %d, " \
+ format_specifier " %s " \
+ format_specifier "\n", \
+ func, line, a, _operator_name[o], b); \
+ else if (test_options.verbose) \
+ ksft_print_msg("Passed: %s at line %d, " \
+ format_specifier " %s " \
+ format_specifier "\n", \
+ func, line, a, _operator_name[o], b); \
+ \
+ return pass ? TEST_SUCCESS : TEST_FAILURE; \
+}
+
+_TEST_OPERATOR(i, int, "%d")
+_TEST_OPERATOR(ui, unsigned int, "%u")
+_TEST_OPERATOR(lui, unsigned long, "%lu")
+_TEST_OPERATOR(ss, ssize_t, "%zd")
+_TEST_OPERATOR(vp, void *, "%px")
+_TEST_OPERATOR(cp, char *, "%px")
+
+#define _CALL_TO(_type, name, a, b, o) \
+ _test_operator_##name(__func__, __LINE__, \
+ (_type) (long long) (a), \
+ (_type) (long long) (b), o)
+
+#define TESTOPERATOR(a, b, o) \
+ do { \
+ if (_Generic((a), \
+ int : _CALL_TO(int, i, a, b, o), \
+ unsigned int : _CALL_TO(unsigned int, ui, a, b, o), \
+ unsigned long : _CALL_TO(unsigned long, lui, a, b, o), \
+ ssize_t : _CALL_TO(ssize_t, ss, a, b, o), \
+ void * : _CALL_TO(void *, vp, a, b, o), \
+ char * : _CALL_TO(char *, cp, a, b, o) \
+ )) \
+ goto out; \
+ } while (false)
+
+#define TESTEQUAL(a, b) TESTOPERATOR(a, b, _eq)
+#define TESTNE(a, b) TESTOPERATOR(a, b, _ne)
+#define TESTGE(a, b) TESTOPERATOR(a, b, _ge)
+
+/* For testing a syscall that returns 0 on success and sets errno otherwise */
+#define TESTSYSCALL(statement) TESTCONDERR((statement) == 0)
+
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
+
+static inline void print_bytes(const void *data, size_t size)
+{
+ const char *bytes = data;
+ int i;
+
+ for (i = 0; i < size; ++i) {
+ if (i % 0x10 == 0)
+ printf("%08x:", i);
+ printf("%02x ", (unsigned int) (unsigned char) bytes[i]);
+ if (i % 0x10 == 0x0f)
+ printf("\n");
+ }
+
+ if (i % 0x10 != 0)
+ printf("\n");
+}
+
+
+
+#endif
diff --git a/tools/testing/selftests/filesystems/fuse/test_fuse.h b/tools/testing/selftests/filesystems/fuse/test_fuse.h
new file mode 100644
index 0000000..69dadc9
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_fuse.h
@@ -0,0 +1,337 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2021 Google LLC
+ */
+
+#ifndef TEST_FUSE__H
+#define TEST_FUSE__H
+
+#define _GNU_SOURCE
+
+#include "test_framework.h"
+
+#include <dirent.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/types.h>
+
+#include <include/uapi/linux/android_fuse.h>
+#include <include/uapi/linux/fuse.h>
+
+#define PAGE_SIZE 4096
+#define FUSE_POSTFILTER 0x20000
+
+extern struct _test_options test_options;
+
+/* Slow but semantically easy string functions */
+
+/*
+ * struct s just wraps a char pointer
+ * It is a pointer to a malloc'd string, or null
+ * All consumers handle null input correctly
+ * All consumers free the string
+ */
+struct s {
+ char *s;
+};
+
+struct s s(const char *s1);
+struct s sn(const char *s1, const char *s2);
+int s_cmp(struct s s1, struct s s2);
+struct s s_cat(struct s s1, struct s s2);
+struct s s_splitleft(struct s s1, char c);
+struct s s_splitright(struct s s1, char c);
+struct s s_word(struct s s1, char c, size_t n);
+struct s s_path(struct s s1, struct s s2);
+struct s s_pathn(size_t n, struct s s1, ...);
+int s_link(struct s src_pathname, struct s dst_pathname);
+int s_symlink(struct s src_pathname, struct s dst_pathname);
+int s_mkdir(struct s pathname, mode_t mode);
+int s_rmdir(struct s pathname);
+int s_unlink(struct s pathname);
+int s_open(struct s pathname, int flags, ...);
+int s_openat(int dirfd, struct s pathname, int flags, ...);
+int s_creat(struct s pathname, mode_t mode);
+int s_mkfifo(struct s pathname, mode_t mode);
+int s_stat(struct s pathname, struct stat *st);
+int s_statfs(struct s pathname, struct statfs *st);
+int s_fuse_attr(struct s pathname, struct fuse_attr *fuse_attr_out);
+DIR *s_opendir(struct s pathname);
+int s_getxattr(struct s pathname, const char name[], void *value, size_t size,
+ ssize_t *ret_size);
+int s_listxattr(struct s pathname, void *list, size_t size, ssize_t *ret_size);
+int s_setxattr(struct s pathname, const char name[], const void *value,
+ size_t size, int flags);
+int s_removexattr(struct s pathname, const char name[]);
+int s_rename(struct s oldpathname, struct s newpathname);
+
+struct s tracing_folder(void);
+int tracing_on(void);
+
+char *concat_file_name(const char *dir, const char *file);
+char *setup_mount_dir(const char *name);
+int delete_dir_tree(const char *dir_path, bool remove_root);
+
+#define TESTFUSEINNULL(_opcode) \
+ do { \
+ struct fuse_in_header *in_header = \
+ (struct fuse_in_header *)bytes_in; \
+ ssize_t res = read(fuse_dev, &bytes_in, \
+ sizeof(bytes_in)); \
+ \
+ TESTEQUAL(in_header->opcode, _opcode); \
+ TESTEQUAL(res, sizeof(*in_header)); \
+ } while (false)
+
+#define TESTFUSEIN(_opcode, in_struct) \
+ do { \
+ struct fuse_in_header *in_header = \
+ (struct fuse_in_header *)bytes_in; \
+ ssize_t res = read(fuse_dev, &bytes_in, \
+ sizeof(bytes_in)); \
+ \
+ TESTEQUAL(in_header->opcode, _opcode); \
+ TESTEQUAL(res, sizeof(*in_header) + sizeof(*in_struct));\
+ } while (false)
+
+#define TESTFUSEIN2(_opcode, in_struct1, in_struct2) \
+ do { \
+ struct fuse_in_header *in_header = \
+ (struct fuse_in_header *)bytes_in; \
+ ssize_t res = read(fuse_dev, &bytes_in, \
+ sizeof(bytes_in)); \
+ \
+ TESTEQUAL(in_header->opcode, _opcode); \
+ TESTEQUAL(res, sizeof(*in_header) + sizeof(*in_struct1) \
+ + sizeof(*in_struct2)); \
+ in_struct1 = (void *)(bytes_in + sizeof(*in_header)); \
+ in_struct2 = (void *)(bytes_in + sizeof(*in_header) \
+ + sizeof(*in_struct1)); \
+ } while (false)
+
+#define TESTFUSEINEXT(_opcode, in_struct, extra) \
+ do { \
+ struct fuse_in_header *in_header = \
+ (struct fuse_in_header *)bytes_in; \
+ ssize_t res = read(fuse_dev, &bytes_in, \
+ sizeof(bytes_in)); \
+ \
+ TESTEQUAL(in_header->opcode, _opcode); \
+ TESTEQUAL(res, \
+ sizeof(*in_header) + sizeof(*in_struct) + extra);\
+ } while (false)
+
+#define TESTFUSEINUNKNOWN() \
+ do { \
+ struct fuse_in_header *in_header = \
+ (struct fuse_in_header *)bytes_in; \
+ ssize_t res = read(fuse_dev, &bytes_in, \
+ sizeof(bytes_in)); \
+ \
+ TESTGE(res, sizeof(*in_header)); \
+ TESTEQUAL(in_header->opcode, -1); \
+ } while (false)
+
+/* Special case lookup since it is asymmetric */
+#define TESTFUSELOOKUP(expected, filter) \
+ do { \
+ struct fuse_in_header *in_header = \
+ (struct fuse_in_header *)bytes_in; \
+ char *name = (char *) (bytes_in + sizeof(*in_header)); \
+ ssize_t res; \
+ \
+ TEST(res = read(fuse_dev, &bytes_in, sizeof(bytes_in)), \
+ res != -1); \
+ /* TODO once we handle forgets properly, remove */ \
+ if (in_header->opcode == FUSE_FORGET) \
+ continue; \
+ if (in_header->opcode == FUSE_BATCH_FORGET) \
+ continue; \
+ TESTGE(res, sizeof(*in_header)); \
+ TESTEQUAL(in_header->opcode, \
+ FUSE_LOOKUP | filter); \
+ TESTEQUAL(res, \
+ sizeof(*in_header) + strlen(expected) + 1 + \
+ (filter == FUSE_POSTFILTER ? \
+ sizeof(struct fuse_entry_out) + \
+ sizeof(struct fuse_entry_bpf_out) : 0));\
+ TESTCOND(!strcmp(name, expected)); \
+ break; \
+ } while (true)
+
+#define TESTFUSEOUTEMPTY() \
+ do { \
+ struct fuse_in_header *in_header = \
+ (struct fuse_in_header *)bytes_in; \
+ struct fuse_out_header *out_header = \
+ (struct fuse_out_header *)bytes_out; \
+ \
+ *out_header = (struct fuse_out_header) { \
+ .len = sizeof(*out_header), \
+ .unique = in_header->unique, \
+ }; \
+ TESTEQUAL(write(fuse_dev, bytes_out, out_header->len), \
+ out_header->len); \
+ } while (false)
+
+#define TESTFUSEOUTERROR(errno) \
+ do { \
+ struct fuse_in_header *in_header = \
+ (struct fuse_in_header *)bytes_in; \
+ struct fuse_out_header *out_header = \
+ (struct fuse_out_header *)bytes_out; \
+ \
+ *out_header = (struct fuse_out_header) { \
+ .len = sizeof(*out_header), \
+ .error = errno, \
+ .unique = in_header->unique, \
+ }; \
+ TESTEQUAL(write(fuse_dev, bytes_out, out_header->len), \
+ out_header->len); \
+ } while (false)
+
+#define TESTFUSEOUTREAD(data, length) \
+ do { \
+ struct fuse_in_header *in_header = \
+ (struct fuse_in_header *)bytes_in; \
+ struct fuse_out_header *out_header = \
+ (struct fuse_out_header *)bytes_out; \
+ \
+ *out_header = (struct fuse_out_header) { \
+ .len = sizeof(*out_header) + length, \
+ .unique = in_header->unique, \
+ }; \
+ memcpy(bytes_out + sizeof(*out_header), data, length); \
+ TESTEQUAL(write(fuse_dev, bytes_out, out_header->len), \
+ out_header->len); \
+ } while (false)
+
+#define TESTFUSEDIROUTREAD(read_out, data, length) \
+ do { \
+ struct fuse_in_header *in_header = \
+ (struct fuse_in_header *)bytes_in; \
+ struct fuse_out_header *out_header = \
+ (struct fuse_out_header *)bytes_out; \
+ \
+ *out_header = (struct fuse_out_header) { \
+ .len = sizeof(*out_header) + \
+ sizeof(*read_out) + length, \
+ .unique = in_header->unique, \
+ }; \
+ memcpy(bytes_out + sizeof(*out_header) + \
+ sizeof(*read_out), data, length); \
+ memcpy(bytes_out + sizeof(*out_header), \
+ read_out, sizeof(*read_out)); \
+ TESTEQUAL(write(fuse_dev, bytes_out, out_header->len), \
+ out_header->len); \
+ } while (false)
+
+#define TESTFUSEOUT1(type1, obj1) \
+ do { \
+ *(struct fuse_out_header *) bytes_out \
+ = (struct fuse_out_header) { \
+ .len = sizeof(struct fuse_out_header) \
+ + sizeof(struct type1), \
+ .unique = ((struct fuse_in_header *) \
+ bytes_in)->unique, \
+ }; \
+ *(struct type1 *) (bytes_out \
+ + sizeof(struct fuse_out_header)) \
+ = obj1; \
+ TESTEQUAL(write(fuse_dev, bytes_out, \
+ ((struct fuse_out_header *)bytes_out)->len), \
+ ((struct fuse_out_header *)bytes_out)->len); \
+ } while (false)
+
+#define TESTFUSEOUT2(type1, obj1, type2, obj2) \
+ do { \
+ *(struct fuse_out_header *) bytes_out \
+ = (struct fuse_out_header) { \
+ .len = sizeof(struct fuse_out_header) \
+ + sizeof(struct type1) \
+ + sizeof(struct type2), \
+ .unique = ((struct fuse_in_header *) \
+ bytes_in)->unique, \
+ }; \
+ *(struct type1 *) (bytes_out \
+ + sizeof(struct fuse_out_header)) \
+ = obj1; \
+ *(struct type2 *) (bytes_out \
+ + sizeof(struct fuse_out_header) \
+ + sizeof(struct type1)) \
+ = obj2; \
+ TESTEQUAL(write(fuse_dev, bytes_out, \
+ ((struct fuse_out_header *)bytes_out)->len), \
+ ((struct fuse_out_header *)bytes_out)->len); \
+ } while (false)
+
+#define TESTFUSEINITFLAGS(fuse_connection_flags) \
+ do { \
+ DECL_FUSE_IN(init); \
+ \
+ TESTFUSEIN(FUSE_INIT, init_in); \
+ TESTEQUAL(init_in->major, FUSE_KERNEL_VERSION); \
+ TESTEQUAL(init_in->minor, FUSE_KERNEL_MINOR_VERSION); \
+ TESTFUSEOUT1(fuse_init_out, ((struct fuse_init_out) { \
+ .major = FUSE_KERNEL_VERSION, \
+ .minor = FUSE_KERNEL_MINOR_VERSION, \
+ .max_readahead = 4096, \
+ .flags = fuse_connection_flags, \
+ .max_background = 0, \
+ .congestion_threshold = 0, \
+ .max_write = 4096, \
+ .time_gran = 1000, \
+ .max_pages = 12, \
+ .map_alignment = 4096, \
+ })); \
+ } while (false)
+
+#define TESTFUSEINIT() \
+ TESTFUSEINITFLAGS(0)
+
+#define DECL_FUSE_IN(name) \
+ struct fuse_##name##_in *name##_in = \
+ (struct fuse_##name##_in *) \
+ (bytes_in + sizeof(struct fuse_in_header))
+
+#define DECL_FUSE(name) \
+ struct fuse_##name##_in *name##_in __maybe_unused; \
+ struct fuse_##name##_out *name##_out __maybe_unused
+
+#define FUSE_DECLARE_DAEMON \
+ int daemon = -1; \
+ int status; \
+ bool action; \
+ uint8_t bytes_in[FUSE_MIN_READ_BUFFER] __maybe_unused; \
+ uint8_t bytes_out[FUSE_MIN_READ_BUFFER] __maybe_unused
+
+#define FUSE_START_DAEMON() \
+ do { \
+ TEST(daemon = fork(), daemon != -1); \
+ action = daemon != 0; \
+ } while (false)
+
+#define FUSE_END_DAEMON() \
+ do { \
+ TESTEQUAL(waitpid(daemon, &status, 0), daemon); \
+ TESTEQUAL(status, TEST_SUCCESS); \
+ result = TEST_SUCCESS; \
+out: \
+ if (!daemon) \
+ exit(TEST_FAILURE); \
+ } while (false)
+
+
+struct map_relocation {
+ char *name;
+ int fd;
+ int value;
+};
+
+int mount_fuse(const char *mount_dir, int bpf_fd, int dir_fd,
+ int *fuse_dev_ptr);
+int mount_fuse_no_init(const char *mount_dir, int bpf_fd, int dir_fd,
+ int *fuse_dev_ptr);
+int install_elf_bpf(const char *file, const char *section, int *fd,
+ struct map_relocation **map_relocations, size_t *map_count);
+#endif
diff --git a/tools/testing/selftests/filesystems/fuse/test_fuse_bpf.h b/tools/testing/selftests/filesystems/fuse/test_fuse_bpf.h
new file mode 100644
index 0000000..9097626
--- /dev/null
+++ b/tools/testing/selftests/filesystems/fuse/test_fuse_bpf.h
@@ -0,0 +1,65 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2022 Google LLC
+ */
+
+#ifndef TEST_FUSE__BPF__H
+#define TEST_FUSE__BPF__H
+
+#define __EXPORTED_HEADERS__
+#define __KERNEL__
+
+#ifdef __ANDROID__
+#include <stdint.h>
+#endif
+
+#include <uapi/linux/types.h>
+#include <uapi/linux/bpf.h>
+#include <uapi/linux/android_fuse.h>
+#include <uapi/linux/fuse.h>
+#include <uapi/linux/errno.h>
+
+#define SEC(NAME) __section(NAME)
+
+struct fuse_bpf_map {
+ int map_type;
+ size_t key_size;
+ size_t value_size;
+ int max_entries;
+};
+
+static void *(*bpf_map_lookup_elem)(struct fuse_bpf_map *map, void *key)
+ = (void *) 1;
+
+static void *(*bpf_map_update_elem)(struct fuse_bpf_map *map, void *key,
+ void *value, int flags)
+ = (void *) 2;
+
+static long (*bpf_trace_printk)(const char *fmt, __u32 fmt_size, ...)
+ = (void *) 6;
+
+static long (*bpf_get_current_pid_tgid)()
+ = (void *) 14;
+
+static long (*bpf_get_current_uid_gid)()
+ = (void *) 15;
+
+#define bpf_printk(fmt, ...) \
+ ({ \
+ char ____fmt[] = fmt; \
+ bpf_trace_printk(____fmt, sizeof(____fmt), \
+ ##__VA_ARGS__); \
+ })
+
+SEC("dummy") inline int strcmp(const char *a, const char *b)
+{
+ int i;
+
+ for (i = 0; i < __builtin_strlen(b) + 1; ++i)
+ if (a[i] != b[i])
+ return -1;
+
+ return 0;
+}
+
+#endif